Version 1.6.0.
This commit is contained in:
parent
803788a1d3
commit
a87ccaec1c
|
@ -23,5 +23,7 @@ namespace UIInfoSuite
|
||||||
public const string LevelUp = "LevelUp";
|
public const string LevelUp = "LevelUp";
|
||||||
public const string Calendar = "Calendar";
|
public const string Calendar = "Calendar";
|
||||||
public const string Billboard = "Billboard";
|
public const string Billboard = "Billboard";
|
||||||
|
public const string DaysUntilToolIsUpgraded = "DaysUntilToolIsUpgraded";
|
||||||
|
public const string ToolIsFinishedBeingUpgraded = "ToolIsFinishedBeingUpgraded";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,35 +75,49 @@ namespace UIInfoSuite
|
||||||
|
|
||||||
private void SaveModData(object sender, EventArgs e)
|
private void SaveModData(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (File.Exists(_modDataFileName))
|
if (!String.IsNullOrWhiteSpace(_modDataFileName))
|
||||||
File.Delete(_modDataFileName);
|
|
||||||
XmlWriterSettings settings = new XmlWriterSettings();
|
|
||||||
settings.Indent = true;
|
|
||||||
settings.IndentChars = " ";
|
|
||||||
using (XmlWriter writer = XmlWriter.Create(File.Open(_modDataFileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite), settings))
|
|
||||||
{
|
{
|
||||||
writer.WriteStartElement("options");
|
if (File.Exists(_modDataFileName))
|
||||||
|
File.Delete(_modDataFileName);
|
||||||
foreach (var option in _options)
|
XmlWriterSettings settings = new XmlWriterSettings();
|
||||||
|
settings.Indent = true;
|
||||||
|
settings.IndentChars = " ";
|
||||||
|
using (XmlWriter writer = XmlWriter.Create(File.Open(_modDataFileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite), settings))
|
||||||
{
|
{
|
||||||
writer.WriteStartElement("option");
|
writer.WriteStartElement("options");
|
||||||
writer.WriteAttributeString("name", option.Key);
|
|
||||||
writer.WriteValue(option.Value);
|
foreach (var option in _options)
|
||||||
|
{
|
||||||
|
writer.WriteStartElement("option");
|
||||||
|
writer.WriteAttributeString("name", option.Key);
|
||||||
|
writer.WriteValue(option.Value);
|
||||||
|
writer.WriteEndElement();
|
||||||
|
}
|
||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
}
|
}
|
||||||
writer.WriteEndElement();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadModData(object sender, EventArgs e)
|
private void LoadModData(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_modDataFileName = Path.Combine(Helper.DirectoryPath, Game1.player.name + "_modData.xml");
|
String playerName = Game1.player.Name;
|
||||||
if (File.Exists(_modDataFileName))
|
try
|
||||||
{
|
{
|
||||||
XmlDocument document = new XmlDocument();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
_modDataFileName = Path.Combine(Helper.DirectoryPath, Game1.player.name + "_modData.xml");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Monitor.Log("Error: Player name contains character that cannot be used in file name. Using generic file name." + Environment.NewLine +
|
||||||
|
"Options may not be able to be different between characters.", LogLevel.Warn);
|
||||||
|
_modDataFileName = Path.Combine(Helper.DirectoryPath, "default_modData.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (File.Exists(_modDataFileName))
|
||||||
|
{
|
||||||
|
XmlDocument document = new XmlDocument();
|
||||||
|
|
||||||
document.Load(_modDataFileName);
|
document.Load(_modDataFileName);
|
||||||
XmlNodeList nodes = document.GetElementsByTagName("option");
|
XmlNodeList nodes = document.GetElementsByTagName("option");
|
||||||
|
|
||||||
|
@ -115,11 +129,12 @@ namespace UIInfoSuite
|
||||||
if (key != null)
|
if (key != null)
|
||||||
_options[key] = value;
|
_options[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
}
|
||||||
{
|
catch (Exception ex)
|
||||||
Monitor.Log("Error loading mod config. " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error);
|
{
|
||||||
}
|
Monitor.Log("Error loading mod config. " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error);
|
||||||
}
|
}
|
||||||
|
|
||||||
_modOptionsPageHandler = new ModOptionsPageHandler(Helper, _options);
|
_modOptionsPageHandler = new ModOptionsPageHandler(Helper, _options);
|
||||||
|
|
|
@ -236,7 +236,7 @@ namespace UIInfoSuite.Options
|
||||||
else if (_upArrow.containsPoint(x, y) && _currentItemIndex > 0)
|
else if (_upArrow.containsPoint(x, y) && _currentItemIndex > 0)
|
||||||
{
|
{
|
||||||
UpArrowPressed();
|
UpArrowPressed();
|
||||||
Game1.playSound("shwip)");
|
Game1.playSound("shwip");
|
||||||
}
|
}
|
||||||
else if (_scrollBar.containsPoint(x, y))
|
else if (_scrollBar.containsPoint(x, y))
|
||||||
{
|
{
|
||||||
|
@ -335,26 +335,26 @@ namespace UIInfoSuite.Options
|
||||||
if (_hoverText != "")
|
if (_hoverText != "")
|
||||||
IClickableMenu.drawHoverText(batch, _hoverText, Game1.smallFont);
|
IClickableMenu.drawHoverText(batch, _hoverText, Game1.smallFont);
|
||||||
|
|
||||||
if (Game1.options.hardwareCursor)
|
//if (Game1.options.hardwareCursor)
|
||||||
{
|
//{
|
||||||
Game1.spriteBatch.Draw(
|
// Game1.spriteBatch.Draw(
|
||||||
Game1.mouseCursors,
|
// Game1.mouseCursors,
|
||||||
new Vector2(
|
// new Vector2(
|
||||||
Game1.getMouseX(),
|
// Game1.getMouseX(),
|
||||||
Game1.getMouseY()),
|
// Game1.getMouseY()),
|
||||||
new Rectangle?(
|
// new Rectangle?(
|
||||||
Game1.getSourceRectForStandardTileSheet(
|
// Game1.getSourceRectForStandardTileSheet(
|
||||||
Game1.mouseCursors,
|
// Game1.mouseCursors,
|
||||||
Game1.mouseCursor,
|
// Game1.mouseCursor,
|
||||||
16,
|
// 16,
|
||||||
16)),
|
// 16)),
|
||||||
Color.White,
|
// Color.White,
|
||||||
0.0f,
|
// 0.0f,
|
||||||
Vector2.Zero,
|
// Vector2.Zero,
|
||||||
(float)(Game1.pixelZoom + (Game1.dialogueButtonScale / 150.0)),
|
// (float)(Game1.pixelZoom + (Game1.dialogueButtonScale / 150.0)),
|
||||||
SpriteEffects.None,
|
// SpriteEffects.None,
|
||||||
1f);
|
// 1f);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using UIInfoSuite.Extensions;
|
||||||
|
|
||||||
namespace UIInfoSuite.Options
|
namespace UIInfoSuite.Options
|
||||||
{
|
{
|
||||||
|
@ -36,6 +37,7 @@ namespace UIInfoSuite.Options
|
||||||
private readonly ShowTravelingMerchant _showTravelingMerchant;
|
private readonly ShowTravelingMerchant _showTravelingMerchant;
|
||||||
private readonly ShopHarvestPrices _shopHarvestPrices;
|
private readonly ShopHarvestPrices _shopHarvestPrices;
|
||||||
private readonly ShowQueenOfSauceIcon _showQueenOfSauceIcon;
|
private readonly ShowQueenOfSauceIcon _showQueenOfSauceIcon;
|
||||||
|
private readonly ShowToolUpgradeStatus _showToolUpgradeStatus;
|
||||||
|
|
||||||
public ModOptionsPageHandler(IModHelper helper, IDictionary<String, String> options)
|
public ModOptionsPageHandler(IModHelper helper, IDictionary<String, String> options)
|
||||||
{
|
{
|
||||||
|
@ -47,13 +49,14 @@ namespace UIInfoSuite.Options
|
||||||
_luckOfDay = new LuckOfDay(helper);
|
_luckOfDay = new LuckOfDay(helper);
|
||||||
_locationOfTownsfolk = new LocationOfTownsfolk(_helper, _options);
|
_locationOfTownsfolk = new LocationOfTownsfolk(_helper, _options);
|
||||||
_showWhenAnimalNeedsPet = new ShowWhenAnimalNeedsPet(_helper);
|
_showWhenAnimalNeedsPet = new ShowWhenAnimalNeedsPet(_helper);
|
||||||
_showCalendarAndBillboardOnGameMenuButton = new ShowCalendarAndBillboardOnGameMenuButton(_options, helper);
|
_showCalendarAndBillboardOnGameMenuButton = new ShowCalendarAndBillboardOnGameMenuButton(helper);
|
||||||
_showScarecrowAndSprinklerRange = new ShowItemEffectRanges(modConfig);
|
_showScarecrowAndSprinklerRange = new ShowItemEffectRanges(modConfig);
|
||||||
_experienceBar = new ExperienceBar(helper);
|
_experienceBar = new ExperienceBar(helper);
|
||||||
_shopHarvestPrices = new ShopHarvestPrices(helper);
|
_shopHarvestPrices = new ShopHarvestPrices(helper);
|
||||||
_showQueenOfSauceIcon = new ShowQueenOfSauceIcon(helper);
|
_showQueenOfSauceIcon = new ShowQueenOfSauceIcon(helper);
|
||||||
_showTravelingMerchant = new ShowTravelingMerchant(helper);
|
_showTravelingMerchant = new ShowTravelingMerchant(helper);
|
||||||
_showCropAndBarrelTime = new ShowCropAndBarrelTime(helper);
|
_showCropAndBarrelTime = new ShowCropAndBarrelTime(helper);
|
||||||
|
_showToolUpgradeStatus = new ShowToolUpgradeStatus(helper);
|
||||||
|
|
||||||
_elementsToDispose = new List<IDisposable>()
|
_elementsToDispose = new List<IDisposable>()
|
||||||
{
|
{
|
||||||
|
@ -68,29 +71,31 @@ namespace UIInfoSuite.Options
|
||||||
_showItemHoverInformation,
|
_showItemHoverInformation,
|
||||||
_showTravelingMerchant,
|
_showTravelingMerchant,
|
||||||
_shopHarvestPrices,
|
_shopHarvestPrices,
|
||||||
_showQueenOfSauceIcon
|
_showQueenOfSauceIcon,
|
||||||
|
_showToolUpgradeStatus
|
||||||
};
|
};
|
||||||
|
|
||||||
int whichOption = 1;
|
int whichOption = 1;
|
||||||
Version thisVersion = Assembly.GetAssembly(this.GetType()).GetName().Version;
|
Version thisVersion = Assembly.GetAssembly(this.GetType()).GetName().Version;
|
||||||
_optionsElements.Add(new ModOptionsElement("UI Info Suite v" +
|
_optionsElements.Add(new ModOptionsElement("UI Info Suite v" +
|
||||||
thisVersion.Major + "." + thisVersion.Minor + "." + thisVersion.Build));
|
thisVersion.Major + "." + thisVersion.Minor + "." + thisVersion.Build));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show luck icon", whichOption++, _luckOfDay.Toggle, _options, OptionKeys.ShowLuckIcon));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowLuckIcon), whichOption++, _luckOfDay.Toggle, _options, OptionKeys.ShowLuckIcon));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show level up animation", whichOption++, _experienceBar.ToggleLevelUpAnimation, _options, OptionKeys.ShowLevelUpAnimation));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowLevelUpAnimation), whichOption++, _experienceBar.ToggleLevelUpAnimation, _options, OptionKeys.ShowLevelUpAnimation));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show experience bar", whichOption++, _experienceBar.ToggleShowExperienceBar, _options, OptionKeys.ShowExperienceBar));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowExperienceBar), whichOption++, _experienceBar.ToggleShowExperienceBar, _options, OptionKeys.ShowExperienceBar));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Allow experience bar to fade out", whichOption++, _experienceBar.ToggleExperienceBarFade, _options, OptionKeys.AllowExperienceBarToFadeOut));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.AllowExperienceBarToFadeOut), whichOption++, _experienceBar.ToggleExperienceBarFade, _options, OptionKeys.AllowExperienceBarToFadeOut));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show experience gain", whichOption++, _experienceBar.ToggleShowExperienceGain, _options, OptionKeys.ShowExperienceGain));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowExperienceGain), whichOption++, _experienceBar.ToggleShowExperienceGain, _options, OptionKeys.ShowExperienceGain));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show townspeople on map", whichOption++, _locationOfTownsfolk.ToggleShowNPCLocationsOnMap, _options, OptionKeys.ShowLocationOfTownsPeople));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowLocationOfTownsPeople), whichOption++, _locationOfTownsfolk.ToggleShowNPCLocationsOnMap, _options, OptionKeys.ShowLocationOfTownsPeople));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show Birthday icon", whichOption++, _showBirthdayIcon.ToggleOption, _options, OptionKeys.ShowBirthdayIcon));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowBirthdayIcon), whichOption++, _showBirthdayIcon.ToggleOption, _options, OptionKeys.ShowBirthdayIcon));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show heart fills", whichOption++, _showAccurateHearts.ToggleOption, _options, OptionKeys.ShowHeartFills));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowHeartFills), whichOption++, _showAccurateHearts.ToggleOption, _options, OptionKeys.ShowHeartFills));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show when animals need pets", whichOption++, _showWhenAnimalNeedsPet.ToggleOption, _options, OptionKeys.ShowAnimalsNeedPets));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowAnimalsNeedPets), whichOption++, _showWhenAnimalNeedsPet.ToggleOption, _options, OptionKeys.ShowAnimalsNeedPets));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show calendar/billboard button", whichOption++, _showCalendarAndBillboardOnGameMenuButton.ToggleOption, _options, OptionKeys.DisplayCalendarAndBillboard));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.DisplayCalendarAndBillboard), whichOption++, _showCalendarAndBillboardOnGameMenuButton.ToggleOption, _options, OptionKeys.DisplayCalendarAndBillboard));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show crop and barrel times", whichOption++, _showCropAndBarrelTime.ToggleOption, _options, OptionKeys.ShowCropAndBarrelTooltip));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowCropAndBarrelTooltip), whichOption++, _showCropAndBarrelTime.ToggleOption, _options, OptionKeys.ShowCropAndBarrelTooltip));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show scarecrow and sprinkler range", whichOption++, _showScarecrowAndSprinklerRange.ToggleOption, _options, OptionKeys.ShowItemEffectRanges));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowItemEffectRanges), whichOption++, _showScarecrowAndSprinklerRange.ToggleOption, _options, OptionKeys.ShowItemEffectRanges));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show Item hover information", whichOption++, _showItemHoverInformation.ToggleOption, _options, OptionKeys.ShowExtraItemInformation));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowExtraItemInformation), whichOption++, _showItemHoverInformation.ToggleOption, _options, OptionKeys.ShowExtraItemInformation));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show Traveling Merchant", whichOption++, _showTravelingMerchant.ToggleOption, _options, OptionKeys.ShowTravelingMerchant));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowTravelingMerchant), whichOption++, _showTravelingMerchant.ToggleOption, _options, OptionKeys.ShowTravelingMerchant));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show shop harvest prices", whichOption++, _shopHarvestPrices.ToggleOption, _options, OptionKeys.ShowHarvestPricesInShop));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowHarvestPricesInShop), whichOption++, _shopHarvestPrices.ToggleOption, _options, OptionKeys.ShowHarvestPricesInShop));
|
||||||
_optionsElements.Add(new ModOptionsCheckbox("Show when new recipes are available", whichOption++, _showQueenOfSauceIcon.ToggleOption, _options, OptionKeys.ShowWhenNewRecipesAreAvailable));
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowWhenNewRecipesAreAvailable), whichOption++, _showQueenOfSauceIcon.ToggleOption, _options, OptionKeys.ShowWhenNewRecipesAreAvailable));
|
||||||
|
_optionsElements.Add(new ModOptionsCheckbox(_helper.SafeGetString(OptionKeys.ShowToolUpgradeStatus), whichOption++, _showToolUpgradeStatus.ToggleOption, _options, OptionKeys.ShowToolUpgradeStatus));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +118,7 @@ namespace UIInfoSuite.Options
|
||||||
{
|
{
|
||||||
if (Game1.activeClickableMenu is GameMenu)
|
if (Game1.activeClickableMenu is GameMenu)
|
||||||
{
|
{
|
||||||
GraphicsEvents.OnPostRenderEvent -= DrawButton;
|
GraphicsEvents.OnPostRenderGuiEvent -= DrawButton;
|
||||||
_modOptionsPageButton.OnLeftClicked -= OnButtonLeftClicked;
|
_modOptionsPageButton.OnLeftClicked -= OnButtonLeftClicked;
|
||||||
List<IClickableMenu> tabPages = _helper.Reflection.GetPrivateField<List<IClickableMenu>>(Game1.activeClickableMenu, "pages").GetValue();
|
List<IClickableMenu> tabPages = _helper.Reflection.GetPrivateField<List<IClickableMenu>>(Game1.activeClickableMenu, "pages").GetValue();
|
||||||
tabPages.Remove(_modOptionsPage);
|
tabPages.Remove(_modOptionsPage);
|
||||||
|
@ -129,8 +134,8 @@ namespace UIInfoSuite.Options
|
||||||
_modOptionsPage = new ModOptionsPage(_optionsElements);
|
_modOptionsPage = new ModOptionsPage(_optionsElements);
|
||||||
_modOptionsPageButton = new ModOptionsPageButton();
|
_modOptionsPageButton = new ModOptionsPageButton();
|
||||||
}
|
}
|
||||||
GraphicsEvents.OnPostRenderEvent -= DrawButton;
|
GraphicsEvents.OnPostRenderGuiEvent -= DrawButton;
|
||||||
GraphicsEvents.OnPostRenderEvent += DrawButton;
|
GraphicsEvents.OnPostRenderGuiEvent += DrawButton;
|
||||||
_modOptionsPageButton.OnLeftClicked += OnButtonLeftClicked;
|
_modOptionsPageButton.OnLeftClicked += OnButtonLeftClicked;
|
||||||
List<IClickableMenu> tabPages = _helper.Reflection.GetPrivateField<List<IClickableMenu>>(Game1.activeClickableMenu, "pages").GetValue();
|
List<IClickableMenu> tabPages = _helper.Reflection.GetPrivateField<List<IClickableMenu>>(Game1.activeClickableMenu, "pages").GetValue();
|
||||||
|
|
||||||
|
|
|
@ -26,5 +26,6 @@ namespace UIInfoSuite.Options
|
||||||
public const string ShowHarvestPricesInShop = "ShowHarvestPricesInShop";
|
public const string ShowHarvestPricesInShop = "ShowHarvestPricesInShop";
|
||||||
public const string DisplayCalendarAndBillboard = "DisplayCalendarAndBillboard";
|
public const string DisplayCalendarAndBillboard = "DisplayCalendarAndBillboard";
|
||||||
public const string ShowWhenNewRecipesAreAvailable = "ShowWhenNewRecipesAreAvailable";
|
public const string ShowWhenNewRecipesAreAvailable = "ShowWhenNewRecipesAreAvailable";
|
||||||
|
public const string ShowToolUpgradeStatus = "ShowToolUpgradeStatus";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.8.0")]
|
[assembly: AssemblyVersion("1.6.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.2.8.0")]
|
[assembly: AssemblyFileVersion("1.6.0.0")]
|
||||||
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>Anschlagtafel</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>Kalender</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>Tage</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>tage zu reifen</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>Du fühlst dich glücklich!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>Erntepreis</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>Stunden</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>Aufleveln</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>Gefühl 'glücklich ... aber nicht allzu glücklich</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>Vielleicht solltest du heute zu Hause bleiben</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>Minuten</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>Du fühlst dich heute gar nicht glücklich</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>Bereit zum Ernten!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>Heutiges Rezept: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>Reisehändler ist in der Stadt!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>Billboard</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>Calendar</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>days</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>days to mature</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>You're feelin' lucky!!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>Harvest price</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>hours</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>Level Up</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>Feelin' lucky... but not too lucky</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>Maybe you should stay home today...</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>minutes</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>You're not feeling lucky at all today...</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>Ready To Harvest!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>Today's Recipe: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>Traveling merchant is in town!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>Cartelera</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>Calendario</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>días</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>días para madurar</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>¡Tienes suerte!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>Precio de la cosecha</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>horas</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>Elevar a mismo nivel</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>Sintiendo con suerte ... pero no demasiado afortunado</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>Tal vez deberías quedarte en casa hoy</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>minutos</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>No te sientes afortunado en absoluto hoy ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>¡Listo para cosechar!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>Receta de hoy: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>¡El comerciante que viaja está en ciudad!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>ビルボード</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>カレンダー</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>日々</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>成熟する日数</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>あなたは幸運を感じている!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>収穫価格</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>時間</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>レベルアップ</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>幸運を感じる...しかしあまりにも幸運ではない</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>多分あなたは今日家にいなければなりません...</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>分</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>あなたは今日も幸運を感じていません...</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>収穫準備!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>今日のレシピ: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>旅行中の商人が町にいる!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>Quadro de avisos</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>Calendário</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>dias</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>dias para amadurecer</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>Você está sentindo 'sorte!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>Preço de colheita</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>horas</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>Upar</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>Sentimento de sorte ... mas não muito sorte</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>Talvez você deva ficar em casa hoje ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>minutos</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>Você não está se sentindo sortudo de todo hoje ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>Apronte para colher!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>Receita de hoje: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>Comerciante ambulante está na cidade!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>рекламный щит</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>Календарь</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>дней</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>дней, чтобы созреть</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>Тебе повезло!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>Урожайность</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>часов</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>Уровень повышен</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>Чувство «повезло ... но не слишком повезло»</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>Может, тебе стоит остаться дома сегодня ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>минут</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>Сегодня вам совсем не везет ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>Готовы к сбору урожая!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>Сегодняшний рецепт: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>Путешественник в городе!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,172 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>บอร์ด</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>ปฏิทิน</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>วัน</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>วันสำหรับผู้ใหญ่</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>คุณรู้สึกโชคดีมาก !!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>ราคาเก็บเกี่ยว</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>ชั่วโมง</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>ยกระดับ</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>รู้สึก 'โชคดี ... แต่ไม่โชคดีเกินไป</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>บางทีคุณควรจะอยู่บ้านวันนี้ ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>นาที</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>วันนี้คุณไม่รู้สึกโชคดีเลย</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>พร้อมที่จะเก็บเกี่ยว!</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="strings.en" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>strings.en.resx;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
|
||||||
</data>
|
|
||||||
<data name="strings.en.Designer" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>strings.en.designer.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>สูตรวันนี้: </value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>พ่อค้าเดินทางอยู่ในเมือง!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -1,165 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="Billboard" xml:space="preserve">
|
|
||||||
<value>广告牌</value>
|
|
||||||
</data>
|
|
||||||
<data name="Calendar" xml:space="preserve">
|
|
||||||
<value>日历</value>
|
|
||||||
</data>
|
|
||||||
<data name="Days" xml:space="preserve">
|
|
||||||
<value>天</value>
|
|
||||||
</data>
|
|
||||||
<data name="DaysToMature" xml:space="preserve">
|
|
||||||
<value>天成熟</value>
|
|
||||||
</data>
|
|
||||||
<data name="FeelingLucky" xml:space="preserve">
|
|
||||||
<value>你感觉很幸运!</value>
|
|
||||||
</data>
|
|
||||||
<data name="HarvestPrice" xml:space="preserve">
|
|
||||||
<value>收获价</value>
|
|
||||||
</data>
|
|
||||||
<data name="Hours" xml:space="preserve">
|
|
||||||
<value>小时</value>
|
|
||||||
</data>
|
|
||||||
<data name="LevelUp" xml:space="preserve">
|
|
||||||
<value>升级</value>
|
|
||||||
</data>
|
|
||||||
<data name="LuckyButNotTooLucky" xml:space="preserve">
|
|
||||||
<value>感觉幸运...但不是太幸运</value>
|
|
||||||
</data>
|
|
||||||
<data name="MaybeStayHome" xml:space="preserve">
|
|
||||||
<value>也许今天应该留在家里</value>
|
|
||||||
</data>
|
|
||||||
<data name="Minutes" xml:space="preserve">
|
|
||||||
<value>分钟</value>
|
|
||||||
</data>
|
|
||||||
<data name="NotFeelingLuckyAtAll" xml:space="preserve">
|
|
||||||
<value>你今天没有感到幸运</value>
|
|
||||||
</data>
|
|
||||||
<data name="ReadyToHarvest" xml:space="preserve">
|
|
||||||
<value>准备收获!</value>
|
|
||||||
</data>
|
|
||||||
<data name="TodaysRecipe" xml:space="preserve">
|
|
||||||
<value>今日食谱:</value>
|
|
||||||
</data>
|
|
||||||
<data name="TravelingMerchantIsInTown" xml:space="preserve">
|
|
||||||
<value>旅行商在城里!</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -52,16 +52,16 @@ namespace UIInfoSuite
|
||||||
{
|
{
|
||||||
int truePrice = 0;
|
int truePrice = 0;
|
||||||
|
|
||||||
if (item is StardewValley.Object)
|
if (item is StardewValley.Object objectItem)
|
||||||
{
|
{
|
||||||
truePrice = (item as StardewValley.Object).sellToStorePrice() * 2;
|
truePrice = objectItem.sellToStorePrice() * 2;
|
||||||
}
|
}
|
||||||
else
|
else if (item is StardewValley.Item thing)
|
||||||
{
|
{
|
||||||
int parentSheetIndex = item.parentSheetIndex;
|
truePrice = thing.salePrice();
|
||||||
//needs more
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return truePrice;
|
return truePrice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,39 +59,6 @@
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Resource\strings.ja.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.ja.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Resource\strings.de.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.de.resx</DependentUpon>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Resource\strings.en.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.en.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Resource\strings.es.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.es.resx</DependentUpon>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Resource\strings.ru.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.ru.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Resource\strings.zh.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>strings.zh.resx</DependentUpon>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Tools.cs" />
|
<Compile Include="Tools.cs" />
|
||||||
<Compile Include="Extensions\StringExtensions.cs" />
|
<Compile Include="Extensions\StringExtensions.cs" />
|
||||||
<Compile Include="ModEntry.cs" />
|
<Compile Include="ModEntry.cs" />
|
||||||
|
@ -112,6 +79,7 @@
|
||||||
<Compile Include="UIElements\ShowItemHoverInformation.cs" />
|
<Compile Include="UIElements\ShowItemHoverInformation.cs" />
|
||||||
<Compile Include="UIElements\ShowItemEffectRanges.cs" />
|
<Compile Include="UIElements\ShowItemEffectRanges.cs" />
|
||||||
<Compile Include="UIElements\ShowQueenOfSauceIcon.cs" />
|
<Compile Include="UIElements\ShowQueenOfSauceIcon.cs" />
|
||||||
|
<Compile Include="UIElements\ShowToolUpgradeStatus.cs" />
|
||||||
<Compile Include="UIElements\ShowTravelingMerchant.cs" />
|
<Compile Include="UIElements\ShowTravelingMerchant.cs" />
|
||||||
<Compile Include="UIElements\ShowWhenAnimalNeedsPet.cs" />
|
<Compile Include="UIElements\ShowWhenAnimalNeedsPet.cs" />
|
||||||
<Compile Include="UIElements\SkipIntro.cs" />
|
<Compile Include="UIElements\SkipIntro.cs" />
|
||||||
|
@ -159,35 +127,6 @@
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resource\strings.ja.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.ja.Designer.cs</LastGenOutput>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resource\strings.de.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.de.Designer.cs</LastGenOutput>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resource\strings.en.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.en.Designer.cs</LastGenOutput>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resource\strings.es.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.es.Designer.cs</LastGenOutput>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resource\strings.pt.resx" />
|
|
||||||
<EmbeddedResource Include="Resource\strings.ru.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.ru.Designer.cs</LastGenOutput>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Resource\strings.th.resx" />
|
|
||||||
<EmbeddedResource Include="Resource\strings.zh.resx">
|
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>strings.zh.Designer.cs</LastGenOutput>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
@ -200,11 +139,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.2\build\Pathoschild.Stardew.ModBuildConfig.targets" Condition="Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets')" />
|
<Import Project="..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.0\build\Pathoschild.Stardew.ModBuildConfig.targets" Condition="Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.0\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.2\build\Pathoschild.Stardew.ModBuildConfig.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets'))" />
|
<Error Condition="!Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.0\build\Pathoschild.Stardew.ModBuildConfig.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.0\build\Pathoschild.Stardew.ModBuildConfig.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
|
@ -23,7 +23,6 @@ namespace UIInfoSuite.UIElements
|
||||||
{
|
{
|
||||||
private const int MaxBarWidth = 175;
|
private const int MaxBarWidth = 175;
|
||||||
private int _currentLevelIndex = 4;
|
private int _currentLevelIndex = 4;
|
||||||
private int _levelOfCurrentlyDisplayedExperience = 0;
|
|
||||||
private float _currentExperience = 0;
|
private float _currentExperience = 0;
|
||||||
private readonly List<ExperiencePointDisplay> _experiencePointDisplays = new List<ExperiencePointDisplay>();
|
private readonly List<ExperiencePointDisplay> _experiencePointDisplays = new List<ExperiencePointDisplay>();
|
||||||
private GameLocation _currentLocation = new GameLocation();
|
private GameLocation _currentLocation = new GameLocation();
|
||||||
|
@ -31,7 +30,7 @@ namespace UIInfoSuite.UIElements
|
||||||
private Color _iconColor = Color.White;
|
private Color _iconColor = Color.White;
|
||||||
private Color _experienceFillColor = Color.Blue;
|
private Color _experienceFillColor = Color.Blue;
|
||||||
private Item _previousItem = null;
|
private Item _previousItem = null;
|
||||||
private bool _showExperienceBar = false;
|
private bool _experienceBarShouldBeVisible = false;
|
||||||
private bool _shouldDrawLevelUp = false;
|
private bool _shouldDrawLevelUp = false;
|
||||||
private System.Timers.Timer _timeToDisappear = new System.Timers.Timer();
|
private System.Timers.Timer _timeToDisappear = new System.Timers.Timer();
|
||||||
private readonly TimeSpan _timeBeforeExperienceBarFades = TimeSpan.FromSeconds(8);
|
private readonly TimeSpan _timeBeforeExperienceBarFades = TimeSpan.FromSeconds(8);
|
||||||
|
@ -40,6 +39,7 @@ namespace UIInfoSuite.UIElements
|
||||||
private bool _allowExperienceBarToFadeOut = true;
|
private bool _allowExperienceBarToFadeOut = true;
|
||||||
private bool _showExperienceGain = true;
|
private bool _showExperienceGain = true;
|
||||||
private bool _showLevelUpAnimation = true;
|
private bool _showLevelUpAnimation = true;
|
||||||
|
private bool _showExperienceBar = true;
|
||||||
private readonly IModHelper _helper;
|
private readonly IModHelper _helper;
|
||||||
private SoundPlayer _player;
|
private SoundPlayer _player;
|
||||||
|
|
||||||
|
@ -61,6 +61,8 @@ namespace UIInfoSuite.UIElements
|
||||||
ModEntry.MonitorObject.Log("Error loading sound file from " + path + ": " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error);
|
ModEntry.MonitorObject.Log("Error loading sound file from " + path + ": " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error);
|
||||||
}
|
}
|
||||||
_timeToDisappear.Elapsed += StopTimerAndFadeBarOut;
|
_timeToDisappear.Elapsed += StopTimerAndFadeBarOut;
|
||||||
|
GraphicsEvents.OnPreRenderHudEvent += OnPreRenderHudEvent;
|
||||||
|
LocationEvents.CurrentLocationChanged += RemoveAllExperiencePointDisplays;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
@ -95,14 +97,14 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
public void ToggleShowExperienceBar(bool showExperienceBar)
|
public void ToggleShowExperienceBar(bool showExperienceBar)
|
||||||
{
|
{
|
||||||
GraphicsEvents.OnPreRenderHudEvent -= OnPreRenderHudEvent;
|
//GraphicsEvents.OnPreRenderHudEvent -= OnPreRenderHudEvent;
|
||||||
LocationEvents.CurrentLocationChanged -= RemoveAllExperiencePointDisplays;
|
//LocationEvents.CurrentLocationChanged -= RemoveAllExperiencePointDisplays;
|
||||||
|
_showExperienceBar = showExperienceBar;
|
||||||
if (showExperienceBar)
|
//if (showExperienceBar)
|
||||||
{
|
//{
|
||||||
GraphicsEvents.OnPreRenderHudEvent += OnPreRenderHudEvent;
|
// GraphicsEvents.OnPreRenderHudEvent += OnPreRenderHudEvent;
|
||||||
LocationEvents.CurrentLocationChanged += RemoveAllExperiencePointDisplays;
|
// LocationEvents.CurrentLocationChanged += RemoveAllExperiencePointDisplays;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnLevelUp(object sender, EventArgsLevelUp e)
|
private void OnLevelUp(object sender, EventArgsLevelUp e)
|
||||||
|
@ -120,7 +122,7 @@ namespace UIInfoSuite.UIElements
|
||||||
_shouldDrawLevelUp = true;
|
_shouldDrawLevelUp = true;
|
||||||
_timeToDisappear.Interval = _timeBeforeExperienceBarFades.TotalMilliseconds;
|
_timeToDisappear.Interval = _timeBeforeExperienceBarFades.TotalMilliseconds;
|
||||||
_timeToDisappear.Start();
|
_timeToDisappear.Start();
|
||||||
_showExperienceBar = true;
|
_experienceBarShouldBeVisible = true;
|
||||||
|
|
||||||
float previousAmbientVolume = Game1.options.ambientVolumeLevel;
|
float previousAmbientVolume = Game1.options.ambientVolumeLevel;
|
||||||
float previousMusicVolume = Game1.options.musicVolumeLevel;
|
float previousMusicVolume = Game1.options.musicVolumeLevel;
|
||||||
|
@ -156,7 +158,7 @@ namespace UIInfoSuite.UIElements
|
||||||
private void StopTimerAndFadeBarOut(object sender, ElapsedEventArgs e)
|
private void StopTimerAndFadeBarOut(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
_timeToDisappear.Stop();
|
_timeToDisappear.Stop();
|
||||||
_showExperienceBar = false;
|
_experienceBarShouldBeVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RemoveAllExperiencePointDisplays(object sender, EventArgsCurrentLocationChanged e)
|
private void RemoveAllExperiencePointDisplays(object sender, EventArgsCurrentLocationChanged e)
|
||||||
|
@ -236,8 +238,46 @@ namespace UIInfoSuite.UIElements
|
||||||
_previousItem = currentItem;
|
_previousItem = currentItem;
|
||||||
_currentExperience = experienceEarnedThisLevel;
|
_currentExperience = experienceEarnedThisLevel;
|
||||||
|
|
||||||
if (_showExperienceBar &&
|
if (_shouldDrawLevelUp)
|
||||||
_levelOfCurrentlyDisplayedExperience != 10)
|
{
|
||||||
|
Vector2 playerLocalPosition = Game1.player.getLocalPosition(Game1.viewport);
|
||||||
|
Game1.spriteBatch.Draw(
|
||||||
|
Game1.mouseCursors,
|
||||||
|
new Vector2(
|
||||||
|
playerLocalPosition.X - 74,
|
||||||
|
playerLocalPosition.Y - 130),
|
||||||
|
_levelUpIconRectangle,
|
||||||
|
_iconColor,
|
||||||
|
0,
|
||||||
|
Vector2.Zero,
|
||||||
|
Game1.pixelZoom,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0.85f);
|
||||||
|
|
||||||
|
Game1.drawWithBorder(
|
||||||
|
_helper.SafeGetString(
|
||||||
|
LanguageKeys.LevelUp),
|
||||||
|
Color.DarkSlateGray,
|
||||||
|
Color.PaleTurquoise,
|
||||||
|
new Vector2(
|
||||||
|
playerLocalPosition.X - 28,
|
||||||
|
playerLocalPosition.Y - 130));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = _experiencePointDisplays.Count - 1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
if (_experiencePointDisplays[i].IsInvisible)
|
||||||
|
{
|
||||||
|
_experiencePointDisplays.RemoveAt(i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_experiencePointDisplays[i].Draw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_experienceBarShouldBeVisible &&
|
||||||
|
_showExperienceBar)
|
||||||
{
|
{
|
||||||
int barWidth = (int)(_currentExperience / (experienceRequiredToLevel - experienceFromPreviousLevels) * MaxBarWidth);
|
int barWidth = (int)(_currentExperience / (experienceRequiredToLevel - experienceFromPreviousLevels) * MaxBarWidth);
|
||||||
float leftSide = Game1.graphics.GraphicsDevice.Viewport.TitleSafeArea.Left;
|
float leftSide = Game1.graphics.GraphicsDevice.Viewport.TitleSafeArea.Left;
|
||||||
|
@ -340,43 +380,7 @@ namespace UIInfoSuite.UIElements
|
||||||
Game1.graphics.GraphicsDevice.Viewport.TitleSafeArea.Bottom - 70));
|
Game1.graphics.GraphicsDevice.Viewport.TitleSafeArea.Bottom - 70));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_shouldDrawLevelUp)
|
|
||||||
{
|
|
||||||
Vector2 playerLocalPosition = Game1.player.getLocalPosition(Game1.viewport);
|
|
||||||
Game1.spriteBatch.Draw(
|
|
||||||
Game1.mouseCursors,
|
|
||||||
new Vector2(
|
|
||||||
playerLocalPosition.X - 74,
|
|
||||||
playerLocalPosition.Y - 130),
|
|
||||||
_levelUpIconRectangle,
|
|
||||||
_iconColor,
|
|
||||||
0,
|
|
||||||
Vector2.Zero,
|
|
||||||
Game1.pixelZoom,
|
|
||||||
SpriteEffects.None,
|
|
||||||
0.85f);
|
|
||||||
|
|
||||||
Game1.drawWithBorder(
|
|
||||||
_helper.SafeGetString(
|
|
||||||
LanguageKeys.LevelUp),
|
|
||||||
Color.DarkSlateGray,
|
|
||||||
Color.PaleTurquoise,
|
|
||||||
new Vector2(
|
|
||||||
playerLocalPosition.X - 28,
|
|
||||||
playerLocalPosition.Y - 130));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = _experiencePointDisplays.Count - 1; i >= 0; --i)
|
|
||||||
{
|
|
||||||
if (_experiencePointDisplays[i].IsInvisible)
|
|
||||||
{
|
|
||||||
_experiencePointDisplays.RemoveAt(i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_experiencePointDisplays[i].Draw();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +418,7 @@ namespace UIInfoSuite.UIElements
|
||||||
_timeToDisappear.Stop();
|
_timeToDisappear.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
_showExperienceBar = true;
|
_experienceBarShouldBeVisible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ namespace UIInfoSuite.UIElements
|
||||||
{ "HaleyHouse", new KeyValuePair<int, int>(652, 408) },
|
{ "HaleyHouse", new KeyValuePair<int, int>(652, 408) },
|
||||||
{ "Hospital", new KeyValuePair<int, int>(677, 304) },
|
{ "Hospital", new KeyValuePair<int, int>(677, 304) },
|
||||||
{ "FarmHouse", new KeyValuePair<int, int>(470, 260) },
|
{ "FarmHouse", new KeyValuePair<int, int>(470, 260) },
|
||||||
|
{ "Farm", new KeyValuePair<int, int>(470, 260) },
|
||||||
{ "ScienceHouse", new KeyValuePair<int, int>(732, 148) },
|
{ "ScienceHouse", new KeyValuePair<int, int>(732, 148) },
|
||||||
{ "ManorHouse", new KeyValuePair<int, int>(768, 395) },
|
{ "ManorHouse", new KeyValuePair<int, int>(768, 395) },
|
||||||
{ "AdventureGuild", new KeyValuePair<int, int>(0, 0) },
|
{ "AdventureGuild", new KeyValuePair<int, int>(0, 0) },
|
||||||
|
@ -153,12 +154,28 @@ namespace UIInfoSuite.UIElements
|
||||||
int hashCode = friendName.name.GetHashCode();
|
int hashCode = friendName.name.GetHashCode();
|
||||||
OptionsCheckbox checkbox = new OptionsCheckbox("", hashCode);
|
OptionsCheckbox checkbox = new OptionsCheckbox("", hashCode);
|
||||||
_checkboxes.Add(checkbox);
|
_checkboxes.Add(checkbox);
|
||||||
|
|
||||||
|
//default to on
|
||||||
|
bool optionForThisFriend = true;
|
||||||
if (!Game1.player.friendships.ContainsKey(friendName.name))
|
if (!Game1.player.friendships.ContainsKey(friendName.name))
|
||||||
{
|
{
|
||||||
checkbox.greyedOut = true;
|
checkbox.greyedOut = true;
|
||||||
checkbox.isChecked = false;
|
optionForThisFriend = false;
|
||||||
}
|
}
|
||||||
checkbox.isChecked = _options.SafeGet(hashCode.ToString()).SafeParseBool();
|
else
|
||||||
|
{
|
||||||
|
String optionValue = _options.SafeGet(hashCode.ToString());
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(optionValue))
|
||||||
|
{
|
||||||
|
_options[hashCode.ToString()] = optionForThisFriend.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
optionForThisFriend = optionValue.SafeParseBool();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkbox.isChecked = optionForThisFriend;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,40 +219,94 @@ namespace UIInfoSuite.UIElements
|
||||||
GameMenu gameMenu = Game1.activeClickableMenu as GameMenu;
|
GameMenu gameMenu = Game1.activeClickableMenu as GameMenu;
|
||||||
if (gameMenu.currentTab == 3)
|
if (gameMenu.currentTab == 3)
|
||||||
{
|
{
|
||||||
|
List<String> namesToShow = new List<string>();
|
||||||
foreach (var character in _townsfolk)
|
foreach (var character in _townsfolk)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int hashCode = character.name.GetHashCode();
|
int hashCode = character.name.GetHashCode();
|
||||||
|
|
||||||
bool drawCharacter = _options.SafeGet(hashCode.ToString()).SafeParseBool();
|
bool drawCharacter = _options.SafeGet(hashCode.ToString()).SafeParseBool();
|
||||||
|
|
||||||
if (drawCharacter)
|
if (drawCharacter)
|
||||||
{
|
{
|
||||||
KeyValuePair<int, int> location;
|
KeyValuePair<int, int> location;
|
||||||
location = new KeyValuePair<int, int>((int)character.Position.X, (int)character.position.Y);
|
location = new KeyValuePair<int, int>((int)character.Position.X, (int)character.position.Y);
|
||||||
|
String locationName = character.currentLocation?.name ?? character.DefaultMap;
|
||||||
|
|
||||||
if (character.currentLocation.Name == "Town")
|
switch (locationName)
|
||||||
{
|
{
|
||||||
String locationName = character.currentLocation.Name;
|
case "Town":
|
||||||
xTile.Map map = character.currentLocation.Map;
|
case "Forest":
|
||||||
int xStart = 595;
|
{
|
||||||
int yStart = 163;
|
int xStart = 0;
|
||||||
int townWidth = 345;
|
int yStart = 0;
|
||||||
int townHeight = 330;
|
int areaWidth = 0;
|
||||||
|
int areaHeight = 0;
|
||||||
|
|
||||||
float xScale = (float)townWidth / (float)map.DisplayWidth;
|
switch (locationName)
|
||||||
float yScale = (float)townHeight / (float)map.DisplayHeight;
|
{
|
||||||
|
case "Town":
|
||||||
|
{
|
||||||
|
xStart = 595;
|
||||||
|
yStart = 163;
|
||||||
|
areaWidth = 345;
|
||||||
|
areaHeight = 330;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
float scaledX = character.position.X * xScale;
|
case "Forest":
|
||||||
float scaledY = character.position.Y * yScale;
|
{
|
||||||
int xPos = (int)scaledX + xStart;
|
xStart = 183;
|
||||||
int yPos = (int)scaledY + yStart;
|
yStart = 378;
|
||||||
location = new KeyValuePair<int, int>(xPos, yPos);
|
areaWidth = 319;
|
||||||
}
|
areaHeight = 261;
|
||||||
else
|
break;
|
||||||
{
|
}
|
||||||
_mapLocations.TryGetValue(character.currentLocation.name, out location);
|
}
|
||||||
|
xTile.Map map = character.currentLocation.Map;
|
||||||
|
|
||||||
|
float xScale = (float)areaWidth / (float)map.DisplayWidth;
|
||||||
|
float yScale = (float)areaHeight / (float)map.DisplayHeight;
|
||||||
|
|
||||||
|
float scaledX = character.position.X * xScale;
|
||||||
|
float scaledY = character.position.Y * yScale;
|
||||||
|
int xPos = (int)scaledX + xStart;
|
||||||
|
int yPos = (int)scaledY + yStart;
|
||||||
|
location = new KeyValuePair<int, int>(xPos, yPos);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
_mapLocations.TryGetValue(locationName, out location);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if (character.currentLocation.Name == "Town")
|
||||||
|
//{
|
||||||
|
// String locationName = character.currentLocation.Name;
|
||||||
|
// xTile.Map map = character.currentLocation.Map;
|
||||||
|
// int xStart = 595;
|
||||||
|
// int yStart = 163;
|
||||||
|
// int townWidth = 345;
|
||||||
|
// int townHeight = 330;
|
||||||
|
|
||||||
|
// float xScale = (float)townWidth / (float)map.DisplayWidth;
|
||||||
|
// float yScale = (float)townHeight / (float)map.DisplayHeight;
|
||||||
|
|
||||||
|
// float scaledX = character.position.X * xScale;
|
||||||
|
// float scaledY = character.position.Y * yScale;
|
||||||
|
// int xPos = (int)scaledX + xStart;
|
||||||
|
// int yPos = (int)scaledY + yStart;
|
||||||
|
// location = new KeyValuePair<int, int>(xPos, yPos);
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// _mapLocations.TryGetValue(character.currentLocation.name, out location);
|
||||||
|
//}
|
||||||
Rectangle headShot = character.GetHeadShot();
|
Rectangle headShot = character.GetHeadShot();
|
||||||
int xBase = Game1.activeClickableMenu.xPositionOnScreen - 158;
|
int xBase = Game1.activeClickableMenu.xPositionOnScreen - 158;
|
||||||
int yBase = Game1.activeClickableMenu.yPositionOnScreen - 40;
|
int yBase = Game1.activeClickableMenu.yPositionOnScreen - 40;
|
||||||
|
@ -254,6 +325,8 @@ namespace UIInfoSuite.UIElements
|
||||||
character.sprite.Texture,
|
character.sprite.Texture,
|
||||||
headShot,
|
headShot,
|
||||||
2.3f);
|
2.3f);
|
||||||
|
|
||||||
|
float headShotScale = 2f;
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
character.sprite.Texture,
|
character.sprite.Texture,
|
||||||
new Vector2(x, y),
|
new Vector2(x, y),
|
||||||
|
@ -261,10 +334,19 @@ namespace UIInfoSuite.UIElements
|
||||||
color,
|
color,
|
||||||
0.0f,
|
0.0f,
|
||||||
Vector2.Zero,
|
Vector2.Zero,
|
||||||
2f,
|
headShotScale,
|
||||||
SpriteEffects.None,
|
SpriteEffects.None,
|
||||||
1f);
|
1f);
|
||||||
|
|
||||||
|
int mouseX = Game1.getMouseX();
|
||||||
|
int mouseY = Game1.getMouseY();
|
||||||
|
|
||||||
|
if (mouseX >= x && mouseX <= x + headShot.Width * headShotScale &&
|
||||||
|
mouseY >= y && mouseY <= y + headShot.Height * headShotScale)
|
||||||
|
{
|
||||||
|
namesToShow.Add(character.displayName);
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var quest in Game1.player.questLog)
|
foreach (var quest in Game1.player.questLog)
|
||||||
{
|
{
|
||||||
if (quest.accepted && quest.dailyQuest && !quest.completed)
|
if (quest.accepted && quest.dailyQuest && !quest.completed)
|
||||||
|
@ -299,6 +381,40 @@ namespace UIInfoSuite.UIElements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (namesToShow.Count > 0)
|
||||||
|
{
|
||||||
|
StringBuilder text = new StringBuilder();
|
||||||
|
int longestLength = 0;
|
||||||
|
foreach (String name in namesToShow)
|
||||||
|
{
|
||||||
|
text.AppendLine(name);
|
||||||
|
longestLength = Math.Max(longestLength, (int)Math.Ceiling(Game1.smallFont.MeasureString(name).Length()));
|
||||||
|
}
|
||||||
|
|
||||||
|
int windowHeight = Game1.smallFont.LineSpacing * namesToShow.Count + 25;
|
||||||
|
Vector2 windowPos = new Vector2(Game1.getMouseX() + 40, Game1.getMouseY() - windowHeight);
|
||||||
|
IClickableMenu.drawTextureBox(
|
||||||
|
Game1.spriteBatch,
|
||||||
|
(int)windowPos.X,
|
||||||
|
(int)windowPos.Y,
|
||||||
|
longestLength + 30,
|
||||||
|
Game1.smallFont.LineSpacing * namesToShow.Count + 25,
|
||||||
|
Color.White);
|
||||||
|
|
||||||
|
Game1.spriteBatch.DrawString(
|
||||||
|
Game1.smallFont,
|
||||||
|
text,
|
||||||
|
new Vector2(windowPos.X + 17, windowPos.Y + 17),
|
||||||
|
Game1.textShadowColor);
|
||||||
|
|
||||||
|
Game1.spriteBatch.DrawString(
|
||||||
|
Game1.smallFont,
|
||||||
|
text,
|
||||||
|
new Vector2(windowPos.X + 15, windowPos.Y + 15),
|
||||||
|
Game1.textColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
//The cursor needs to show up in front of the character faces
|
||||||
if (!Game1.options.hardwareCursor)
|
if (!Game1.options.hardwareCursor)
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
Game1.mouseCursors,
|
Game1.mouseCursors,
|
||||||
|
@ -387,22 +503,22 @@ namespace UIInfoSuite.UIElements
|
||||||
4),
|
4),
|
||||||
Color.BurlyWood);
|
Color.BurlyWood);
|
||||||
}
|
}
|
||||||
Game1.spriteBatch.Draw(
|
//Game1.spriteBatch.Draw(
|
||||||
Game1.mouseCursors,
|
// Game1.mouseCursors,
|
||||||
new Vector2(
|
// new Vector2(
|
||||||
Game1.getMouseX(),
|
// Game1.getMouseX(),
|
||||||
Game1.getMouseY()),
|
// Game1.getMouseY()),
|
||||||
Game1.getSourceRectForStandardTileSheet(
|
// Game1.getSourceRectForStandardTileSheet(
|
||||||
Game1.mouseCursors,
|
// Game1.mouseCursors,
|
||||||
Game1.mouseCursor,
|
// Game1.mouseCursor,
|
||||||
16,
|
// 16,
|
||||||
16),
|
// 16),
|
||||||
Color.White,
|
// Color.White,
|
||||||
0.0f,
|
// 0.0f,
|
||||||
Vector2.Zero,
|
// Vector2.Zero,
|
||||||
Game1.pixelZoom + (Game1.dialogueButtonScale / 150.0f),
|
// Game1.pixelZoom + (Game1.dialogueButtonScale / 150.0f),
|
||||||
SpriteEffects.None,
|
// SpriteEffects.None,
|
||||||
1f);
|
// 1f);
|
||||||
|
|
||||||
if (checkbox.bounds.Contains(Game1.getMouseX(), Game1.getMouseY()))
|
if (checkbox.bounds.Contains(Game1.getMouseX(), Game1.getMouseY()))
|
||||||
IClickableMenu.drawHoverText(
|
IClickableMenu.drawHoverText(
|
||||||
|
|
|
@ -76,20 +76,20 @@ namespace UIInfoSuite.UIElements
|
||||||
friendshipRawValue < 2500)
|
friendshipRawValue < 2500)
|
||||||
{
|
{
|
||||||
DrawEachIndividualSquare(numHearts, pointsToNextHeart, yPosition);
|
DrawEachIndividualSquare(numHearts, pointsToNextHeart, yPosition);
|
||||||
if (!Game1.options.hardwareCursor)
|
//if (!Game1.options.hardwareCursor)
|
||||||
Game1.spriteBatch.Draw(
|
// Game1.spriteBatch.Draw(
|
||||||
Game1.mouseCursors,
|
// Game1.mouseCursors,
|
||||||
new Vector2(Game1.getMouseX(), Game1.getMouseY()),
|
// new Vector2(Game1.getMouseX(), Game1.getMouseY()),
|
||||||
Game1.getSourceRectForStandardTileSheet(
|
// Game1.getSourceRectForStandardTileSheet(
|
||||||
Game1.mouseCursors, Game1.mouseCursor,
|
// Game1.mouseCursors, Game1.mouseCursor,
|
||||||
16,
|
// 16,
|
||||||
16),
|
// 16),
|
||||||
Color.White,
|
// Color.White,
|
||||||
0.0f,
|
// 0.0f,
|
||||||
Vector2.Zero,
|
// Vector2.Zero,
|
||||||
Game1.pixelZoom + (float)(Game1.dialogueButtonScale / 150.0),
|
// Game1.pixelZoom + (float)(Game1.dialogueButtonScale / 150.0),
|
||||||
SpriteEffects.None,
|
// SpriteEffects.None,
|
||||||
1f);
|
// 1f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,23 +25,19 @@ namespace UIInfoSuite.UIElements
|
||||||
Game1.content.Load<Texture2D>(Path.Combine("Maps", "summer_town")),
|
Game1.content.Load<Texture2D>(Path.Combine("Maps", "summer_town")),
|
||||||
new Rectangle(122, 291, 35, 20),
|
new Rectangle(122, 291, 35, 20),
|
||||||
3f);
|
3f);
|
||||||
private String _hoverText;
|
|
||||||
private readonly IDictionary<String, String> _options;
|
|
||||||
private readonly IModHelper _helper;
|
private readonly IModHelper _helper;
|
||||||
|
|
||||||
private Item _hoverItem = null;
|
private Item _hoverItem = null;
|
||||||
|
|
||||||
public ShowCalendarAndBillboardOnGameMenuButton(IDictionary<String, String> options,
|
public ShowCalendarAndBillboardOnGameMenuButton(IModHelper helper)
|
||||||
IModHelper helper)
|
|
||||||
{
|
{
|
||||||
_options = options;
|
|
||||||
_helper = helper;
|
_helper = helper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleOption(bool showCalendarAndBillboard)
|
public void ToggleOption(bool showCalendarAndBillboard)
|
||||||
{
|
{
|
||||||
GraphicsEvents.OnPostRenderGuiEvent -= RenderButtons;
|
GraphicsEvents.OnPostRenderGuiEvent -= RenderButtons;
|
||||||
GraphicsEvents.OnPreRenderGuiEvent -= RemoveDefaultTooltips;
|
|
||||||
ControlEvents.MouseChanged -= OnBillboardIconClick;
|
ControlEvents.MouseChanged -= OnBillboardIconClick;
|
||||||
ControlEvents.ControllerButtonPressed -= OnBillboardIconPressed;
|
ControlEvents.ControllerButtonPressed -= OnBillboardIconPressed;
|
||||||
GraphicsEvents.OnPreRenderEvent -= GetHoverItem;
|
GraphicsEvents.OnPreRenderEvent -= GetHoverItem;
|
||||||
|
@ -49,7 +45,6 @@ namespace UIInfoSuite.UIElements
|
||||||
if (showCalendarAndBillboard)
|
if (showCalendarAndBillboard)
|
||||||
{
|
{
|
||||||
GraphicsEvents.OnPostRenderGuiEvent += RenderButtons;
|
GraphicsEvents.OnPostRenderGuiEvent += RenderButtons;
|
||||||
GraphicsEvents.OnPreRenderGuiEvent += RemoveDefaultTooltips;
|
|
||||||
ControlEvents.MouseChanged += OnBillboardIconClick;
|
ControlEvents.MouseChanged += OnBillboardIconClick;
|
||||||
ControlEvents.ControllerButtonPressed += OnBillboardIconPressed;
|
ControlEvents.ControllerButtonPressed += OnBillboardIconPressed;
|
||||||
GraphicsEvents.OnPreRenderEvent += GetHoverItem;
|
GraphicsEvents.OnPreRenderEvent += GetHoverItem;
|
||||||
|
@ -86,23 +81,16 @@ namespace UIInfoSuite.UIElements
|
||||||
(Game1.activeClickableMenu as GameMenu).currentTab == 0 &&
|
(Game1.activeClickableMenu as GameMenu).currentTab == 0 &&
|
||||||
_showBillboardButton.containsPoint(Game1.getMouseX(), Game1.getMouseY()))
|
_showBillboardButton.containsPoint(Game1.getMouseX(), Game1.getMouseY()))
|
||||||
{
|
{
|
||||||
|
if (Game1.questOfTheDay != null &&
|
||||||
|
String.IsNullOrEmpty(Game1.questOfTheDay.currentObjective))
|
||||||
|
Game1.questOfTheDay.currentObjective = "wat?";
|
||||||
|
|
||||||
Game1.activeClickableMenu =
|
Game1.activeClickableMenu =
|
||||||
new Billboard(!(Game1.getMouseX() <
|
new Billboard(!(Game1.getMouseX() <
|
||||||
_showBillboardButton.bounds.X + _showBillboardButton.bounds.Width / 2));
|
_showBillboardButton.bounds.X + _showBillboardButton.bounds.Width / 2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RemoveDefaultTooltips(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (Game1.activeClickableMenu is GameMenu &&
|
|
||||||
!_options.SafeGet(OptionKeys.ShowExtraItemInformation).SafeParseBool())
|
|
||||||
{
|
|
||||||
InventoryPage inventoryPage = (typeof(GameMenu).GetField("pages", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(Game1.activeClickableMenu) as List<IClickableMenu>)[0] as InventoryPage;
|
|
||||||
_hoverText = typeof(InventoryPage).GetField("hoverText", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(inventoryPage) as String;
|
|
||||||
typeof(InventoryPage).GetField("hoverText", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(inventoryPage, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RenderButtons(object sender, EventArgs e)
|
private void RenderButtons(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_hoverItem == null &&
|
if (_hoverItem == null &&
|
||||||
|
@ -123,20 +111,6 @@ namespace UIInfoSuite.UIElements
|
||||||
_helper.SafeGetString(hoverText),
|
_helper.SafeGetString(hoverText),
|
||||||
Game1.dialogueFont);
|
Game1.dialogueFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_options.SafeGet(OptionKeys.ShowExtraItemInformation).SafeParseBool())
|
|
||||||
{
|
|
||||||
InventoryPage inventoryPage = (typeof(GameMenu).GetField("pages", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(Game1.activeClickableMenu) as List<IClickableMenu>)[0] as InventoryPage;
|
|
||||||
String hoverTitle = typeof(InventoryPage).GetField("hoverTitle", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(inventoryPage) as String;
|
|
||||||
Item hoveredItem = typeof(InventoryPage).GetField("hoveredItem", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(inventoryPage) as Item;
|
|
||||||
Item heldItem = typeof(InventoryPage).GetField("heldItem", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(inventoryPage) as Item;
|
|
||||||
IClickableMenu.drawToolTip(
|
|
||||||
Game1.spriteBatch,
|
|
||||||
_hoverText,
|
|
||||||
hoverTitle,
|
|
||||||
hoveredItem,
|
|
||||||
heldItem != null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@ using System.Reflection;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using StardewValley.Objects;
|
using StardewValley.Objects;
|
||||||
using StardewModdingAPI;
|
using StardewModdingAPI;
|
||||||
|
using StardewValley.Locations;
|
||||||
|
using StardewValley.Buildings;
|
||||||
|
|
||||||
namespace UIInfoSuite.UIElements
|
namespace UIInfoSuite.UIElements
|
||||||
{
|
{
|
||||||
|
@ -22,6 +24,7 @@ namespace UIInfoSuite.UIElements
|
||||||
private Dictionary<int, String> _indexOfCropNames = new Dictionary<int, string>();
|
private Dictionary<int, String> _indexOfCropNames = new Dictionary<int, string>();
|
||||||
private StardewValley.Object _currentTile;
|
private StardewValley.Object _currentTile;
|
||||||
private TerrainFeature _terrain;
|
private TerrainFeature _terrain;
|
||||||
|
private Building _currentTileBuilding = null;
|
||||||
private readonly IModHelper _helper;
|
private readonly IModHelper _helper;
|
||||||
|
|
||||||
public ShowCropAndBarrelTime(IModHelper helper)
|
public ShowCropAndBarrelTime(IModHelper helper)
|
||||||
|
@ -43,6 +46,15 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
private void GetTileUnderCursor(object sender, EventArgs e)
|
private void GetTileUnderCursor(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (Game1.currentLocation is BuildableGameLocation buildableLocation)
|
||||||
|
{
|
||||||
|
_currentTileBuilding = buildableLocation.getBuildingAt(Game1.currentCursorTile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_currentTileBuilding = null;
|
||||||
|
}
|
||||||
|
|
||||||
_currentTile = Game1.currentLocation.Objects.SafeGet(Game1.currentCursorTile);
|
_currentTile = Game1.currentLocation.Objects.SafeGet(Game1.currentCursorTile);
|
||||||
_terrain = Game1.currentLocation.terrainFeatures.SafeGet(Game1.currentCursorTile);
|
_terrain = Game1.currentLocation.terrainFeatures.SafeGet(Game1.currentCursorTile);
|
||||||
}
|
}
|
||||||
|
@ -57,8 +69,47 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
//StardewValley.Object tile = Game1.currentLocation.Objects.SafeGet(Game1.currentCursorTile);
|
//StardewValley.Object tile = Game1.currentLocation.Objects.SafeGet(Game1.currentCursorTile);
|
||||||
//TerrainFeature feature = null;
|
//TerrainFeature feature = null;
|
||||||
|
if (_currentTileBuilding != null)
|
||||||
|
{
|
||||||
|
if (_currentTileBuilding is Mill millBuilding)
|
||||||
|
{
|
||||||
|
if (!millBuilding.input.isEmpty())
|
||||||
|
{
|
||||||
|
int wheatCount = 0;
|
||||||
|
int beetCount = 0;
|
||||||
|
|
||||||
if (_currentTile != null &&
|
foreach (var item in millBuilding.input.items)
|
||||||
|
{
|
||||||
|
switch (item.Name)
|
||||||
|
{
|
||||||
|
case "Wheat": wheatCount = item.Stack; break;
|
||||||
|
case "Beet": beetCount = item.Stack; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
|
||||||
|
if (wheatCount > 0)
|
||||||
|
builder.Append(wheatCount + " wheat");
|
||||||
|
|
||||||
|
if (beetCount > 0)
|
||||||
|
{
|
||||||
|
if (wheatCount > 0)
|
||||||
|
builder.Append(Environment.NewLine);
|
||||||
|
builder.Append(beetCount + " beets");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (builder.Length > 0)
|
||||||
|
{
|
||||||
|
IClickableMenu.drawHoverText(
|
||||||
|
Game1.spriteBatch,
|
||||||
|
builder.ToString(),
|
||||||
|
Game1.smallFont);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (_currentTile != null &&
|
||||||
(!_currentTile.bigCraftable ||
|
(!_currentTile.bigCraftable ||
|
||||||
_currentTile.minutesUntilReady > 0))
|
_currentTile.minutesUntilReady > 0))
|
||||||
{
|
{
|
||||||
|
@ -75,6 +126,10 @@ namespace UIInfoSuite.UIElements
|
||||||
hoverText.Append((int)(currentCask.daysToMature / currentCask.agingRate))
|
hoverText.Append((int)(currentCask.daysToMature / currentCask.agingRate))
|
||||||
.Append(" " + _helper.SafeGetString(
|
.Append(" " + _helper.SafeGetString(
|
||||||
LanguageKeys.DaysToMature));
|
LanguageKeys.DaysToMature));
|
||||||
|
}
|
||||||
|
else if (_currentTile is StardewValley.Buildings.Mill)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using StardewModdingAPI.Events;
|
using StardewModdingAPI.Events;
|
||||||
using StardewValley;
|
using StardewValley;
|
||||||
|
using StardewValley.Buildings;
|
||||||
|
using StardewValley.Locations;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -15,6 +17,27 @@ namespace UIInfoSuite.UIElements
|
||||||
private readonly List<Point> _effectiveArea = new List<Point>();
|
private readonly List<Point> _effectiveArea = new List<Point>();
|
||||||
private readonly ModConfig _modConfig;
|
private readonly ModConfig _modConfig;
|
||||||
|
|
||||||
|
private static readonly int[][] _junimoHutArray = new int[17][]
|
||||||
|
{
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
new int[17] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
|
||||||
|
};
|
||||||
|
|
||||||
public ShowItemEffectRanges(ModConfig modConfig)
|
public ShowItemEffectRanges(ModConfig modConfig)
|
||||||
{
|
{
|
||||||
_modConfig = modConfig;
|
_modConfig = modConfig;
|
||||||
|
@ -41,86 +64,102 @@ namespace UIInfoSuite.UIElements
|
||||||
{
|
{
|
||||||
_effectiveArea.Clear();
|
_effectiveArea.Clear();
|
||||||
|
|
||||||
if (Game1.player.CurrentItem != null &&
|
if (Game1.activeClickableMenu == null &&
|
||||||
Game1.activeClickableMenu == null &&
|
|
||||||
!Game1.eventUp)
|
!Game1.eventUp)
|
||||||
{
|
{
|
||||||
String name = Game1.player.CurrentItem.Name.ToLower();
|
if (Game1.currentLocation is BuildableGameLocation buildableLocation)
|
||||||
Item currentItem = Game1.player.CurrentItem;
|
|
||||||
List<StardewValley.Object> objects = null;
|
|
||||||
|
|
||||||
int[][] arrayToUse = null;
|
|
||||||
|
|
||||||
if (name.Contains("arecrow"))
|
|
||||||
{
|
{
|
||||||
arrayToUse = new int[17][];
|
Building building = buildableLocation.getBuildingAt(Game1.currentCursorTile);
|
||||||
for (int i = 0; i < 17; ++i)
|
|
||||||
{
|
|
||||||
arrayToUse[i] = new int[17];
|
|
||||||
for (int j = 0; j < 17; ++j)
|
|
||||||
{
|
|
||||||
arrayToUse[i][j] = (Math.Abs(i - 8) + Math.Abs(j - 8) <= 12) ? 1 : 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ParseConfigToHighlightedArea(arrayToUse, TileUnderMouseX, TileUnderMouseY);
|
|
||||||
objects = GetObjectsInLocationOfSimilarName("arecrow");
|
|
||||||
if (objects != null)
|
|
||||||
{
|
|
||||||
foreach (StardewValley.Object next in objects)
|
|
||||||
{
|
|
||||||
ParseConfigToHighlightedArea(arrayToUse, (int)next.TileLocation.X, (int)next.TileLocation.Y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (building is JunimoHut)
|
||||||
|
{
|
||||||
|
foreach (var nextBuilding in buildableLocation.buildings)
|
||||||
|
{
|
||||||
|
if (nextBuilding is JunimoHut nextHut)
|
||||||
|
ParseConfigToHighlightedArea(_junimoHutArray, nextHut.tileX + 1, nextHut.tileY + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (name.Contains("sprinkler"))
|
|
||||||
{
|
|
||||||
if (name.Contains("iridium"))
|
|
||||||
{
|
|
||||||
arrayToUse = _modConfig.IridiumSprinkler;
|
|
||||||
}
|
|
||||||
else if (name.Contains("quality"))
|
|
||||||
{
|
|
||||||
arrayToUse = _modConfig.QualitySprinkler;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
arrayToUse = _modConfig.Sprinkler;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arrayToUse != null)
|
if (Game1.player.CurrentItem != null)
|
||||||
|
{
|
||||||
|
String name = Game1.player.CurrentItem.Name.ToLower();
|
||||||
|
Item currentItem = Game1.player.CurrentItem;
|
||||||
|
List<StardewValley.Object> objects = null;
|
||||||
|
|
||||||
|
int[][] arrayToUse = null;
|
||||||
|
|
||||||
|
if (name.Contains("arecrow"))
|
||||||
|
{
|
||||||
|
arrayToUse = new int[17][];
|
||||||
|
for (int i = 0; i < 17; ++i)
|
||||||
|
{
|
||||||
|
arrayToUse[i] = new int[17];
|
||||||
|
for (int j = 0; j < 17; ++j)
|
||||||
|
{
|
||||||
|
arrayToUse[i][j] = (Math.Abs(i - 8) + Math.Abs(j - 8) <= 12) ? 1 : 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
ParseConfigToHighlightedArea(arrayToUse, TileUnderMouseX, TileUnderMouseY);
|
ParseConfigToHighlightedArea(arrayToUse, TileUnderMouseX, TileUnderMouseY);
|
||||||
|
objects = GetObjectsInLocationOfSimilarName("arecrow");
|
||||||
objects = GetObjectsInLocationOfSimilarName("sprinkler");
|
if (objects != null)
|
||||||
|
|
||||||
if (objects != null)
|
|
||||||
{
|
|
||||||
foreach (StardewValley.Object next in objects)
|
|
||||||
{
|
{
|
||||||
string objectName = next.name.ToLower();
|
foreach (StardewValley.Object next in objects)
|
||||||
if (objectName.Contains("iridium"))
|
|
||||||
{
|
{
|
||||||
arrayToUse = _modConfig.IridiumSprinkler;
|
|
||||||
}
|
|
||||||
else if (objectName.Contains("quality"))
|
|
||||||
{
|
|
||||||
arrayToUse = _modConfig.QualitySprinkler;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
arrayToUse = _modConfig.Sprinkler;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arrayToUse != null)
|
|
||||||
ParseConfigToHighlightedArea(arrayToUse, (int)next.TileLocation.X, (int)next.TileLocation.Y);
|
ParseConfigToHighlightedArea(arrayToUse, (int)next.TileLocation.X, (int)next.TileLocation.Y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (name.Contains("sprinkler"))
|
||||||
|
{
|
||||||
|
if (name.Contains("iridium"))
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.IridiumSprinkler;
|
||||||
|
}
|
||||||
|
else if (name.Contains("quality"))
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.QualitySprinkler;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.Sprinkler;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arrayToUse != null)
|
||||||
|
ParseConfigToHighlightedArea(arrayToUse, TileUnderMouseX, TileUnderMouseY);
|
||||||
|
|
||||||
|
objects = GetObjectsInLocationOfSimilarName("sprinkler");
|
||||||
|
|
||||||
|
if (objects != null)
|
||||||
|
{
|
||||||
|
foreach (StardewValley.Object next in objects)
|
||||||
|
{
|
||||||
|
string objectName = next.name.ToLower();
|
||||||
|
if (objectName.Contains("iridium"))
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.IridiumSprinkler;
|
||||||
|
}
|
||||||
|
else if (objectName.Contains("quality"))
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.QualitySprinkler;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arrayToUse = _modConfig.Sprinkler;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arrayToUse != null)
|
||||||
|
ParseConfigToHighlightedArea(arrayToUse, (int)next.TileLocation.X, (int)next.TileLocation.Y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else if (name.Contains("bee house"))
|
||||||
else if (name.Contains("bee house"))
|
{
|
||||||
{
|
ParseConfigToHighlightedArea(_modConfig.Beehouse, TileUnderMouseX, TileUnderMouseY);
|
||||||
ParseConfigToHighlightedArea(_modConfig.Beehouse, TileUnderMouseX, TileUnderMouseY);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,9 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
private void DrawAdvancedTooltip(object sender, EventArgs e)
|
private void DrawAdvancedTooltip(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_hoverItem != null)
|
if (_hoverItem != null &&
|
||||||
|
_hoverItem.Name != "Scythe" &&
|
||||||
|
!(_hoverItem is StardewValley.Tools.FishingRod))
|
||||||
{
|
{
|
||||||
//String text = string.Empty;
|
//String text = string.Empty;
|
||||||
//String extra = string.Empty;
|
//String extra = string.Empty;
|
||||||
|
@ -132,8 +134,7 @@ namespace UIInfoSuite.UIElements
|
||||||
int itemPrice = 0;
|
int itemPrice = 0;
|
||||||
int stackPrice = 0;
|
int stackPrice = 0;
|
||||||
|
|
||||||
if (truePrice > 0 &&
|
if (truePrice > 0)
|
||||||
_hoverItem.Name != "Scythe")
|
|
||||||
{
|
{
|
||||||
itemPrice = truePrice / 2;
|
itemPrice = truePrice / 2;
|
||||||
//int width = (int)Game1.smallFont.MeasureString(" ").Length();
|
//int width = (int)Game1.smallFont.MeasureString(" ").Length();
|
||||||
|
@ -244,7 +245,7 @@ namespace UIInfoSuite.UIElements
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.smallFont,
|
Game1.smallFont,
|
||||||
itemPrice.ToString(),
|
itemPrice.ToString(),
|
||||||
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
new Vector2(currentDrawPos.X + 22, currentDrawPos.Y - 8),
|
||||||
Game1.textShadowColor);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
|
@ -282,7 +283,7 @@ namespace UIInfoSuite.UIElements
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.smallFont,
|
Game1.smallFont,
|
||||||
stackPrice.ToString(),
|
stackPrice.ToString(),
|
||||||
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
new Vector2(currentDrawPos.X + 22, currentDrawPos.Y - 8),
|
||||||
Game1.textShadowColor);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
|
@ -331,7 +332,7 @@ namespace UIInfoSuite.UIElements
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.smallFont,
|
Game1.smallFont,
|
||||||
cropPrice.ToString(),
|
cropPrice.ToString(),
|
||||||
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
new Vector2(currentDrawPos.X + 22, currentDrawPos.Y - 8),
|
||||||
Game1.textShadowColor);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
|
|
|
@ -29,6 +29,7 @@ namespace UIInfoSuite.UIElements
|
||||||
{
|
{
|
||||||
GraphicsEvents.OnPreRenderHudEvent -= DrawIcon;
|
GraphicsEvents.OnPreRenderHudEvent -= DrawIcon;
|
||||||
TimeEvents.AfterDayStarted -= CheckForNewRecipe;
|
TimeEvents.AfterDayStarted -= CheckForNewRecipe;
|
||||||
|
GameEvents.OneSecondTick -= CheckIfLearnedRecipe;
|
||||||
|
|
||||||
if (showQueenOfSauceIcon)
|
if (showQueenOfSauceIcon)
|
||||||
{
|
{
|
||||||
|
@ -36,9 +37,17 @@ namespace UIInfoSuite.UIElements
|
||||||
CheckForNewRecipe(null, null);
|
CheckForNewRecipe(null, null);
|
||||||
TimeEvents.AfterDayStarted += CheckForNewRecipe;
|
TimeEvents.AfterDayStarted += CheckForNewRecipe;
|
||||||
GraphicsEvents.OnPreRenderHudEvent += DrawIcon;
|
GraphicsEvents.OnPreRenderHudEvent += DrawIcon;
|
||||||
|
GameEvents.OneSecondTick += CheckIfLearnedRecipe;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CheckIfLearnedRecipe(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_drawQueenOfSauceIcon &&
|
||||||
|
Game1.player.knowsRecipe(_todaysRecipe))
|
||||||
|
_drawQueenOfSauceIcon = false;
|
||||||
|
}
|
||||||
|
|
||||||
public ShowQueenOfSauceIcon(IModHelper helper)
|
public ShowQueenOfSauceIcon(IModHelper helper)
|
||||||
{
|
{
|
||||||
_helper = helper;
|
_helper = helper;
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using StardewModdingAPI;
|
||||||
|
using StardewModdingAPI.Events;
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UIInfoSuite.Extensions;
|
||||||
|
|
||||||
|
namespace UIInfoSuite.UIElements
|
||||||
|
{
|
||||||
|
class ShowToolUpgradeStatus : IDisposable
|
||||||
|
{
|
||||||
|
private readonly IModHelper _helper;
|
||||||
|
private Rectangle _toolTexturePosition;
|
||||||
|
private String _hoverText;
|
||||||
|
private Tool _toolBeingUpgraded;
|
||||||
|
|
||||||
|
public ShowToolUpgradeStatus(IModHelper helper)
|
||||||
|
{
|
||||||
|
_helper = helper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ToggleOption(bool showToolUpgradeStatus)
|
||||||
|
{
|
||||||
|
GraphicsEvents.OnPreRenderHudEvent -= DrawToolUpgradeStatus;
|
||||||
|
TimeEvents.AfterDayStarted -= DayChanged;
|
||||||
|
GameEvents.OneSecondTick -= CheckForMidDayChanges;
|
||||||
|
|
||||||
|
if (showToolUpgradeStatus)
|
||||||
|
{
|
||||||
|
DayChanged(null, new EventArgsIntChanged(0, Game1.dayOfMonth));
|
||||||
|
GraphicsEvents.OnPreRenderHudEvent += DrawToolUpgradeStatus;
|
||||||
|
TimeEvents.AfterDayStarted += DayChanged;
|
||||||
|
GameEvents.OneSecondTick += CheckForMidDayChanges;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckForMidDayChanges(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_toolBeingUpgraded != Game1.player.toolBeingUpgraded)
|
||||||
|
DayChanged(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DayChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Game1.player.toolBeingUpgraded != null)
|
||||||
|
{
|
||||||
|
_toolBeingUpgraded = Game1.player.toolBeingUpgraded;
|
||||||
|
_toolTexturePosition = new Rectangle();
|
||||||
|
|
||||||
|
if (_toolBeingUpgraded is StardewValley.Tools.WateringCan)
|
||||||
|
{
|
||||||
|
_toolTexturePosition.X = 32;
|
||||||
|
_toolTexturePosition.Y = 228;
|
||||||
|
_toolTexturePosition.Width = 16;
|
||||||
|
_toolTexturePosition.Height = 11;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_toolTexturePosition.Width = 16;
|
||||||
|
_toolTexturePosition.Height = 16;
|
||||||
|
_toolTexturePosition.X = 81;
|
||||||
|
_toolTexturePosition.Y = 31;
|
||||||
|
|
||||||
|
if (!(_toolBeingUpgraded is StardewValley.Tools.Hoe))
|
||||||
|
{
|
||||||
|
_toolTexturePosition.Y += 64;
|
||||||
|
|
||||||
|
if (!(_toolBeingUpgraded is StardewValley.Tools.Pickaxe))
|
||||||
|
{
|
||||||
|
_toolTexturePosition.Y += 64;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_toolTexturePosition.X += (111 * _toolBeingUpgraded.UpgradeLevel);
|
||||||
|
|
||||||
|
if (_toolTexturePosition.X > Game1.toolSpriteSheet.Width)
|
||||||
|
{
|
||||||
|
_toolTexturePosition.Y += 32;
|
||||||
|
_toolTexturePosition.X -= 333;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Game1.player.daysLeftForToolUpgrade > 0)
|
||||||
|
{
|
||||||
|
_hoverText = String.Format(_helper.SafeGetString(LanguageKeys.DaysUntilToolIsUpgraded),
|
||||||
|
Game1.player.daysLeftForToolUpgrade, _toolBeingUpgraded.DisplayName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_hoverText = String.Format(_helper.SafeGetString(LanguageKeys.ToolIsFinishedBeingUpgraded),
|
||||||
|
_toolBeingUpgraded.DisplayName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_toolBeingUpgraded = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawToolUpgradeStatus(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Game1.eventUp &&
|
||||||
|
_toolBeingUpgraded != null)
|
||||||
|
{
|
||||||
|
Point iconPosition = IconHandler.Handler.GetNewIconPosition();
|
||||||
|
ClickableTextureComponent textureComponent =
|
||||||
|
new ClickableTextureComponent(
|
||||||
|
new Rectangle(iconPosition.X, iconPosition.Y, 40, 40),
|
||||||
|
Game1.toolSpriteSheet,
|
||||||
|
_toolTexturePosition,
|
||||||
|
2.5f);
|
||||||
|
textureComponent.draw(Game1.spriteBatch);
|
||||||
|
|
||||||
|
if (textureComponent.containsPoint(Game1.getMouseX(), Game1.getMouseY()))
|
||||||
|
{
|
||||||
|
IClickableMenu.drawHoverText(
|
||||||
|
Game1.spriteBatch,
|
||||||
|
_hoverText, Game1.dialogueFont);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
ToggleOption(false);
|
||||||
|
_toolBeingUpgraded = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -59,7 +59,7 @@ namespace UIInfoSuite.UIElements
|
||||||
ClickableTextureComponent textureComponent =
|
ClickableTextureComponent textureComponent =
|
||||||
new ClickableTextureComponent(
|
new ClickableTextureComponent(
|
||||||
new Rectangle(iconPosition.X, iconPosition.Y, 40, 40),
|
new Rectangle(iconPosition.X, iconPosition.Y, 40, 40),
|
||||||
Game1.content.Load<Texture2D>("LooseSprites\\Cursors"),
|
Game1.mouseCursors,
|
||||||
new Rectangle(192, 1411, 20, 20),
|
new Rectangle(192, 1411, 20, 20),
|
||||||
2f);
|
2f);
|
||||||
textureComponent.draw(Game1.spriteBatch);
|
textureComponent.draw(Game1.spriteBatch);
|
||||||
|
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "Du fühlst dich heute gar nicht glücklich",
|
"NotFeelingLuckyAtAll" : "Du fühlst dich heute gar nicht glücklich",
|
||||||
"ReadyToHarvest" : "Bereit zum Ernten!",
|
"ReadyToHarvest" : "Bereit zum Ernten!",
|
||||||
"TodaysRecipe" : "Heutiges Rezept: ",
|
"TodaysRecipe" : "Heutiges Rezept: ",
|
||||||
"TravelingMerchantIsInTown" : "Reisehändler ist in der Stadt!"
|
"TravelingMerchantIsInTown" : "Reisehändler ist in der Stadt!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0} dagen totdat {2} klaar is met upgraden",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0} is klaar!",
|
||||||
|
"ShowLuckIcon" : "Symbol \"Glück zeigen\"",
|
||||||
|
"ShowLevelUpAnimation" : "Zeige Level-up-Animation",
|
||||||
|
"ShowExperienceBar" : "Erfahrungsleiste anzeigen",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Erlauben, dass die Erlebnisleiste ausgeblendet wird",
|
||||||
|
"ShowExperienceGain" : "Zeige Erfahrungsgewinn",
|
||||||
|
"ShowLocationOfTownsPeople" : "Stadtbewohner auf der Karte anzeigen",
|
||||||
|
"ShowBirthdayIcon" : "Symbol \"Geburtstag anzeigen\"",
|
||||||
|
"ShowHeartFills" : "Zeige Herzfüllungen",
|
||||||
|
"ShowAnimalsNeedPets" : "Zeigen Sie, wenn Tiere Haustiere brauchen",
|
||||||
|
"DisplayCalendarAndBillboard" : "Kalender / Billboard-Button anzeigen",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Ernte- und Fasszeiten anzeigen",
|
||||||
|
"ShowItemEffectRanges" : "Show Vogelscheuche und Sprinkler-Bereich",
|
||||||
|
"ShowExtraItemInformation" : "Element-Hover-Informationen anzeigen",
|
||||||
|
"ShowTravelingMerchant" : "Zeige reisenden Händler",
|
||||||
|
"ShowHarvestPricesInShop" : "Show-Ernte-Preise",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Zeige, wenn neue Rezepte verfügbar sind",
|
||||||
|
"ShowToolUpgradeStatus" : "Toolstatus van upgrade tonen"
|
||||||
}
|
}
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "You're not feeling lucky at all today...",
|
"NotFeelingLuckyAtAll" : "You're not feeling lucky at all today...",
|
||||||
"ReadyToHarvest" : "Ready To Harvest!",
|
"ReadyToHarvest" : "Ready To Harvest!",
|
||||||
"TodaysRecipe" : "Today's Recipe: ",
|
"TodaysRecipe" : "Today's Recipe: ",
|
||||||
"TravelingMerchantIsInTown" : "Traveling merchant is in town!"
|
"TravelingMerchantIsInTown" : "Traveling merchant is in town!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0} days until {1} is finished being upgraded",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0} is finished!",
|
||||||
|
"ShowLuckIcon" : "Show luck icon",
|
||||||
|
"ShowLevelUpAnimation" : "Show level up animation",
|
||||||
|
"ShowExperienceBar" : "Show experience bar",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Allow experience bar to fade out",
|
||||||
|
"ShowExperienceGain" : "Show experience gain",
|
||||||
|
"ShowLocationOfTownsPeople" : "Show townspeople on map",
|
||||||
|
"ShowBirthdayIcon" : "Show Birthday icon",
|
||||||
|
"ShowHeartFills" : "Show heart fills",
|
||||||
|
"ShowAnimalsNeedPets" : "Show when animals need pets",
|
||||||
|
"DisplayCalendarAndBillboard" : "Show calendar/billboard button",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Show crop and barrel times",
|
||||||
|
"ShowItemEffectRanges" : "Show scarecrow and sprinkler range",
|
||||||
|
"ShowExtraItemInformation" : "Show item hover information",
|
||||||
|
"ShowTravelingMerchant" : "Show Traveling Merchant",
|
||||||
|
"ShowHarvestPricesInShop" : "Show shop harvest prices",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Show when new recipes are available",
|
||||||
|
"ShowToolUpgradeStatus" : "Show tool upgrade status"
|
||||||
}
|
}
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "No te sientes afortunado en absoluto hoy ...",
|
"NotFeelingLuckyAtAll" : "No te sientes afortunado en absoluto hoy ...",
|
||||||
"ReadyToHarvest" : "¡Listo para cosechar!",
|
"ReadyToHarvest" : "¡Listo para cosechar!",
|
||||||
"TodaysRecipe" : "Receta de hoy: ",
|
"TodaysRecipe" : "Receta de hoy: ",
|
||||||
"TravelingMerchantIsInTown" : "¡El comerciante que viaja está en ciudad!"
|
"TravelingMerchantIsInTown" : "¡El comerciante que viaja está en ciudad!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0} días hasta que {1} termine de actualizarse",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0} está terminada!",
|
||||||
|
"ShowLuckIcon" : "Mostrar ícono de suerte",
|
||||||
|
"ShowLevelUpAnimation" : "Mostrar animación de nivel superior",
|
||||||
|
"ShowExperienceBar" : "Mostrar barra de experiencia",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Permitir que la barra de experiencia se desvanezca",
|
||||||
|
"ShowExperienceGain" : "Mostrar ganancia de experiencia",
|
||||||
|
"ShowLocationOfTownsPeople" : "Mostrar a la gente del pueblo en el mapa",
|
||||||
|
"ShowBirthdayIcon" : "Mostrar icono de cumpleaños",
|
||||||
|
"ShowHeartFills" : "Mostrar rellenos de corazón",
|
||||||
|
"ShowAnimalsNeedPets" : "Muestra cuando los animales necesitan mascotas",
|
||||||
|
"DisplayCalendarAndBillboard" : "Mostrar el botón de calendario / cartelera",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Mostrar los tiempos de cosecha y barril",
|
||||||
|
"ShowItemEffectRanges" : "Mostrar rango de espantapájaros y de riego",
|
||||||
|
"ShowExtraItemInformation" : "Mostrar información de elemento emergente",
|
||||||
|
"ShowTravelingMerchant" : "Mostrar comerciante itinerante",
|
||||||
|
"ShowHarvestPricesInShop" : "Mostrar los precios de cosecha de la tienda",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Mostrar cuando hay nuevas recetas disponibles",
|
||||||
|
"ShowToolUpgradeStatus" : "Mostrar el estado de actualización de la herramienta"
|
||||||
}
|
}
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "あなたは今日も幸運を感じていません...",
|
"NotFeelingLuckyAtAll" : "あなたは今日も幸運を感じていません...",
|
||||||
"ReadyToHarvest" : "収穫準備!",
|
"ReadyToHarvest" : "収穫準備!",
|
||||||
"TodaysRecipe" : "今日のレシピ: ",
|
"TodaysRecipe" : "今日のレシピ: ",
|
||||||
"TravelingMerchantIsInTown" : "旅行中の商人が町にいる!"
|
"TravelingMerchantIsInTown" : "旅行中の商人が町にいる!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{1}日が終わるまで{0}日間",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0}が終わった!",
|
||||||
|
"ShowLuckIcon" : "幸運アイコンを表示する",
|
||||||
|
"ShowLevelUpAnimation" : "レベルアップアニメーションを表示する",
|
||||||
|
"ShowExperienceBar" : "エクスペリエンスバーを表示",
|
||||||
|
"AllowExperienceBarToFadeOut" : "エクスペリエンスバーをフェードアウトさせる",
|
||||||
|
"ShowExperienceGain" : "経験値を表示",
|
||||||
|
"ShowLocationOfTownsPeople" : "町の人々を地図に表示する",
|
||||||
|
"ShowBirthdayIcon" : "誕生日を表示アイコン",
|
||||||
|
"ShowHeartFills" : "ハートフィルを表示する",
|
||||||
|
"ShowAnimalsNeedPets" : "動物がペットを必要とするときを表示する",
|
||||||
|
"DisplayCalendarAndBillboard" : "カレンダー/掲示板ボタンを表示する",
|
||||||
|
"ShowCropAndBarrelTooltip" : "作物と樽の時間を表示する",
|
||||||
|
"ShowItemEffectRanges" : "かかしとスプリンクラーの範囲を表示する",
|
||||||
|
"ShowExtraItemInformation" : "アイテムのホバー情報を表示する",
|
||||||
|
"ShowTravelingMerchant" : "旅行中の商人を表示する",
|
||||||
|
"ShowHarvestPricesInShop" : "店舗収穫価格を表示する",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "新しいレシピが利用可能になったら表示する",
|
||||||
|
"ShowToolUpgradeStatus" : "ツールのアップグレードステータスを表示する"
|
||||||
}
|
}
|
|
@ -3,15 +3,34 @@
|
||||||
"Calendar" : "Calendário",
|
"Calendar" : "Calendário",
|
||||||
"Days" : "dias",
|
"Days" : "dias",
|
||||||
"DaysToMature" : "dias para amadurecer",
|
"DaysToMature" : "dias para amadurecer",
|
||||||
"FeelingLucky" : "Você está sentindo 'sorte!",
|
"FeelingLucky" : "Você está sentindo com muita sorte!",
|
||||||
"HarvestPrice" : "Preço de colheita",
|
"HarvestPrice" : "Preço de colheita",
|
||||||
"Hours" : "horas",
|
"Hours" : "horas",
|
||||||
"LevelUp" : "Upar",
|
"LevelUp" : "Upou",
|
||||||
"LuckyButNotTooLucky" : "Sentimento de sorte ... mas não muito sorte",
|
"LuckyButNotTooLucky" : "Sentindo-se com sorte ... mas não muita",
|
||||||
"MaybeStayHome" : "Talvez você deva ficar em casa hoje ...",
|
"MaybeStayHome" : "Talvez você deva ficar em casa hoje ...",
|
||||||
"Minutes" : "minutos",
|
"Minutes" : "minutos",
|
||||||
"NotFeelingLuckyAtAll" : "Você não está se sentindo sortudo de todo hoje ...",
|
"NotFeelingLuckyAtAll" : "Você não está se sentindo sortudo hoje ...",
|
||||||
"ReadyToHarvest" : "Apronte para colher!",
|
"ReadyToHarvest" : "pronto para colher!",
|
||||||
"TodaysRecipe" : "Receita de hoje: ",
|
"TodaysRecipe" : "Receita de hoje: ",
|
||||||
"TravelingMerchantIsInTown" : "Comerciante ambulante está na cidade!"
|
"TravelingMerchantIsInTown" : "O camelô está na cidade!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0} dias até {1} terminarem sendo atualizados",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0} está terminado!",
|
||||||
|
"ShowLuckIcon" : "Mostrar ícone de sorte",
|
||||||
|
"ShowLevelUpAnimation" : "Mostrar animação de nível superior",
|
||||||
|
"ShowExperienceBar" : "Mostrar barra de experiência",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Permitir barra de experiência desaparecer",
|
||||||
|
"ShowExperienceGain" : "Mostrar o ganho de experiência",
|
||||||
|
"ShowLocationOfTownsPeople" : "Mostrar pessoas da cidade no mapa",
|
||||||
|
"ShowBirthdayIcon" : "Exibir ícone de aniversário",
|
||||||
|
"ShowHeartFills" : "Mostrar preenchimentos cardíacos",
|
||||||
|
"ShowAnimalsNeedPets" : "Mostre quando os animais precisam de animais de estimação",
|
||||||
|
"DisplayCalendarAndBillboard" : "Mostrar o calendário / botão do quadro de avisos",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Mostrar tempos de colheita e barril",
|
||||||
|
"ShowItemEffectRanges" : "Mostrar espantalho e intervalo de sprinklers",
|
||||||
|
"ShowExtraItemInformation" : "Mostrar informações do hover do item",
|
||||||
|
"ShowTravelingMerchant" : "Show Travelling Merchant",
|
||||||
|
"ShowHarvestPricesInShop" : "Mostrar preços de colheita da loja",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Mostrar quando novas receitas estão disponíveis",
|
||||||
|
"ShowToolUpgradeStatus" : "Mostrar status da atualização da ferramenta"
|
||||||
}
|
}
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "Сегодня вам совсем не везет ...",
|
"NotFeelingLuckyAtAll" : "Сегодня вам совсем не везет ...",
|
||||||
"ReadyToHarvest" : "Готовы к сбору урожая!",
|
"ReadyToHarvest" : "Готовы к сбору урожая!",
|
||||||
"TodaysRecipe" : "Сегодняшний рецепт: ",
|
"TodaysRecipe" : "Сегодняшний рецепт: ",
|
||||||
"TravelingMerchantIsInTown" : "Путешественник в городе!"
|
"TravelingMerchantIsInTown" : "Путешественник в городе!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0} дня, пока {1} не будет обновлено",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0} завершено!",
|
||||||
|
"ShowLuckIcon" : "Показать значок удачи",
|
||||||
|
"ShowLevelUpAnimation" : "Показывать анимацию уровня",
|
||||||
|
"ShowExperienceBar" : "Показать панель опыта",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Позвонить в панель эффектов",
|
||||||
|
"ShowExperienceGain" : "Показать опыт",
|
||||||
|
"ShowLocationOfTownsPeople" : "Показать горожан на карте",
|
||||||
|
"ShowBirthdayIcon" : "Показать значок дня рождения",
|
||||||
|
"ShowHeartFills" : "Показать сердце заполняет",
|
||||||
|
"ShowAnimalsNeedPets" : "Показать, когда животные нуждаются в домашних животных",
|
||||||
|
"DisplayCalendarAndBillboard" : "Показать кнопку календаря / рекламного щита",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Показывать время урожая и ствола",
|
||||||
|
"ShowItemEffectRanges" : "Показать пугало и спринклеры",
|
||||||
|
"ShowExtraItemInformation" : "Показывать информацию о паре",
|
||||||
|
"ShowTravelingMerchant" : "Показать Путешествующий Торговец",
|
||||||
|
"ShowHarvestPricesInShop" : "Показывать цены на урожай",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Показывать, когда доступны новые рецепты",
|
||||||
|
"ShowToolUpgradeStatus" : "Показать статус обновления инструмента"
|
||||||
}
|
}
|
|
@ -13,5 +13,21 @@
|
||||||
"NotFeelingLuckyAtAll" : "วันนี้คุณไม่รู้สึกโชคดีเลย",
|
"NotFeelingLuckyAtAll" : "วันนี้คุณไม่รู้สึกโชคดีเลย",
|
||||||
"ReadyToHarvest" : "พร้อมที่จะเก็บเกี่ยว!",
|
"ReadyToHarvest" : "พร้อมที่จะเก็บเกี่ยว!",
|
||||||
"TodaysRecipe" : "สูตรวันนี้: ",
|
"TodaysRecipe" : "สูตรวันนี้: ",
|
||||||
"TravelingMerchantIsInTown" : "พ่อค้าเดินทางอยู่ในเมือง!"
|
"TravelingMerchantIsInTown" : "พ่อค้าเดินทางอยู่ในเมือง!",
|
||||||
|
"ShowLuckIcon" : "Show luck icon",
|
||||||
|
"ShowLevelUpAnimation" : "Show level up animation",
|
||||||
|
"ShowExperienceBar" : "Show experience bar",
|
||||||
|
"AllowExperienceBarToFadeOut" : "Allow experience bar to fade out",
|
||||||
|
"ShowExperienceGain" : "Show experience gain",
|
||||||
|
"ShowLocationOfTownsPeople" : "Show townspeople on map",
|
||||||
|
"ShowBirthdayIcon" : "Show Birthday icon",
|
||||||
|
"ShowHeartFills" : "Show heart fills",
|
||||||
|
"ShowAnimalsNeedPets" : "Show when animals need pets",
|
||||||
|
"DisplayCalendarAndBillboard" : "Show calendar/billboard button",
|
||||||
|
"ShowCropAndBarrelTooltip" : "Show crop and barrel times",
|
||||||
|
"ShowItemEffectRanges" : "Show scarecrow and sprinkler range",
|
||||||
|
"ShowExtraItemInformation" : "Show item hover information",
|
||||||
|
"ShowTravelingMerchant" : "Show Traveling Merchant",
|
||||||
|
"ShowHarvestPricesInShop" : "Show shop harvest prices",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "Show when new recipes are available"
|
||||||
}
|
}
|
|
@ -13,5 +13,24 @@
|
||||||
"NotFeelingLuckyAtAll" : "你一点都不觉得今天幸运",
|
"NotFeelingLuckyAtAll" : "你一点都不觉得今天幸运",
|
||||||
"ReadyToHarvest" : "可以收获!",
|
"ReadyToHarvest" : "可以收获!",
|
||||||
"TodaysRecipe" : "今日食谱:",
|
"TodaysRecipe" : "今日食谱:",
|
||||||
"TravelingMerchantIsInTown" : "旅行商人在镇上!"
|
"TravelingMerchantIsInTown" : "旅行商人在镇上!",
|
||||||
|
"DaysUntilToolIsUpgraded" : "{0}天,直到{1}完成升级",
|
||||||
|
"ToolIsFinishedBeingUpgraded" : "{0}完成!",
|
||||||
|
"ShowLuckIcon" : "顯示運氣圖標",
|
||||||
|
"ShowLevelUpAnimation" : "顯示關卡動畫",
|
||||||
|
"ShowExperienceBar" : "顯示體驗吧",
|
||||||
|
"AllowExperienceBarToFadeOut" : "允許經驗欄淡出",
|
||||||
|
"ShowExperienceGain" : "顯示經驗收益",
|
||||||
|
"ShowLocationOfTownsPeople" : "在地圖上顯示鄉民",
|
||||||
|
"ShowBirthdayIcon" : "顯示生日圖標",
|
||||||
|
"ShowHeartFills" : "顯示心臟填充",
|
||||||
|
"ShowAnimalsNeedPets" : "當動物需要寵物時顯示",
|
||||||
|
"DisplayCalendarAndBillboard" : "顯示日曆/廣告牌按鈕",
|
||||||
|
"ShowCropAndBarrelTooltip" : "顯示作物和桶的時間",
|
||||||
|
"ShowItemEffectRanges" : "顯示稻草人和噴水滅火器的範圍",
|
||||||
|
"ShowExtraItemInformation" : "顯示項目懸停信息",
|
||||||
|
"ShowTravelingMerchant" : "顯示旅行商人",
|
||||||
|
"ShowHarvestPricesInShop" : "顯示店鋪收穫價格",
|
||||||
|
"ShowWhenNewRecipesAreAvailable" : "顯示新的食譜可用",
|
||||||
|
"ShowToolUpgradeStatus" : "显示工具升级状态"
|
||||||
}
|
}
|
|
@ -3,11 +3,13 @@
|
||||||
"Author": "Cdaragorn",
|
"Author": "Cdaragorn",
|
||||||
"Version": {
|
"Version": {
|
||||||
"MajorVersion": 1,
|
"MajorVersion": 1,
|
||||||
"MinorVersion": 2,
|
"MinorVersion": 6,
|
||||||
"PatchVersion": 8,
|
"PatchVersion": 0,
|
||||||
"Build": null
|
"Build": null
|
||||||
},
|
},
|
||||||
"Description": "Adds a lot 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",
|
||||||
|
"MinimumApiVersion" : "2.1",
|
||||||
|
"UpdateKeys": [ "Nexus:1150" ]
|
||||||
}
|
}
|
|
@ -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.2" targetFramework="net452" />
|
<package id="Pathoschild.Stardew.ModBuildConfig" version="2.0.0" targetFramework="net452" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue