From aa42d21a1cbacb6dcd279ca02249f2e8488cc9fb Mon Sep 17 00:00:00 2001 From: xysztm Date: Tue, 5 Nov 2024 20:38:19 +0800 Subject: [PATCH 1/3] Edit the path for my path --- _build/common.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_build/common.targets b/_build/common.targets index 18f0d85..c131382 100644 --- a/_build/common.targets +++ b/_build/common.targets @@ -30,9 +30,9 @@ - - - C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley + + + D:\SteamLibrary\steamapps\common\Stardew Valley C:\ $(GamePath)\$(ModSet) From de9febbd4ecfc32822ef2eacf45f40d134ea9379 Mon Sep 17 00:00:00 2001 From: xysztm Date: Tue, 5 Nov 2024 20:39:37 +0800 Subject: [PATCH 2/3] Make Almanac can be used without the Random features in 1.6.9 --- Almanac/Almanac.csproj | 2 + Almanac/Crops/CropPage.cs | 4 +- Almanac/FishHelper.cs | 29 +++++++++----- Almanac/Managers/LuckManager.cs | 9 +++-- Almanac/Managers/NoticesManager.cs | 3 +- Almanac/Menus/BookCollectionMenu.cs | 4 +- Almanac/ModAPI.cs | 17 ++++---- Almanac/ModEntry.cs | 61 ++++++++++++++++++----------- Almanac/Pages/FortunePage.cs | 4 +- Almanac/Pages/MinesPage.cs | 8 ++-- Almanac/Pages/NoticesPage.cs | 2 + Almanac/Pages/WeatherPage.cs | 4 +- Almanac/Patches/Game1_Patches.cs | 7 ++-- Almanac/i18n/default.json | 16 +++++--- Almanac/i18n/zh.json | 60 ++++++++++++++++++++-------- Almanac/manifest.json | 5 ++- 16 files changed, 153 insertions(+), 82 deletions(-) diff --git a/Almanac/Almanac.csproj b/Almanac/Almanac.csproj index 46c5492..62cfaed 100644 --- a/Almanac/Almanac.csproj +++ b/Almanac/Almanac.csproj @@ -7,6 +7,8 @@ true true + + Crafting;BCInventory;Inventory;GMCM;Mutex;Overlay;UI;SimpleLayout;Flow;SpookyAction;ThemeManager diff --git a/Almanac/Crops/CropPage.cs b/Almanac/Crops/CropPage.cs index 5efa34b..e9edbd7 100644 --- a/Almanac/Crops/CropPage.cs +++ b/Almanac/Crops/CropPage.cs @@ -263,7 +263,7 @@ public CropPage(AlmanacMenu menu, ModEntry mod) : base(menu, mod) { rightNeighborID = ClickableComponent.SNAP_AUTOMATIC }; tabSeedsSprite = Game1.random.Next(2 * AlmanacMenu.TABS.Length); - spriteSeeds = SpriteHelper.GetSprite(InventoryHelper.CreateItemById("(O)495", 1)); + spriteSeeds = SpriteHelper.GetSprite(ItemRegistry.Create("(O)495")); // Cache Agriculturist status. Agriculturist = Game1.player.professions.Contains(Farmer.agriculturist); @@ -350,7 +350,7 @@ public override void Update() { break; } - spriteSeeds = SpriteHelper.GetSprite(InventoryHelper.CreateItemById(seasonSeeds, 1)); + spriteSeeds = SpriteHelper.GetSprite(ItemRegistry.Create(seasonSeeds)); LastDays = new List[ModEntry.DaysPerMonth]; diff --git a/Almanac/FishHelper.cs b/Almanac/FishHelper.cs index 89546f7..044fc2e 100644 --- a/Almanac/FishHelper.cs +++ b/Almanac/FishHelper.cs @@ -122,7 +122,7 @@ public static Dictionary>> GetFishLoca //Dictionary Dictionary>> result = new(); //Dictionary - var locations = Game1.content.Load>("Data\\Locations"); + var locations = Game1.content.Load>(@"Data\Locations"); foreach (var lp in locations) { if (SkipLocation(lp.Key)) @@ -164,7 +164,7 @@ public static Dictionary>> GetFishLoca public static Dictionary> GetFishLocations(int season) { Dictionary> result = new(); - var locations = Game1.content.Load>("Data\\Locations"); + var locations = Game1.content.Load>(@"Data\Locations"); foreach (var lp in locations) { if (SkipLocation(lp.Key)) continue; @@ -197,7 +197,7 @@ public static Dictionary> GetLocationFish(string key, int s if (key == "BeachNightMarket") key = "Beach"; - locations ??= Game1.content.Load>("Data\\Locations"); + locations ??= Game1.content.Load>(@"Data\Locations"); Dictionary> result; GameLocation loc; if (locations.ContainsKey(key) && ContainsFish(locations[key])) @@ -262,7 +262,7 @@ public static Dictionary> GetLocationFish(string key, int s } } try{ - GetLocationFish(season, locations[Game1.GetFarmTypeKey()], result); + GetLocationFish(season, locations[Game1.GetFarmTypeID()], result); } catch { ModEntry.Instance.Log($"Error at {getLocName(locations[Game1.GetFarmTypeKey()])}, farm key section.", LogLevel.Warn); } @@ -288,10 +288,10 @@ public static Dictionary> GetLocationFish(int season, Locat if (data.Equals(null)) return existing; - string name = getLocName(data); + string name = data.DisplayName; List entries = data.Fish; - if (!data.Equals(Game1.content.Load>("Data\\Locations")["Default"])) { - LocationData Default = Game1.content.Load>("Data\\Locations")["Default"]; + if (!data.Equals(DataLoader.Locations(Game1.content)["Default"])) { + LocationData Default = DataLoader.Locations(Game1.content)["Default"]; foreach (SpawnFishData f in Default.Fish) if (!entries.Contains(f)) entries.Add(f); @@ -316,8 +316,19 @@ public static bool ContainsFish(LocationData loc) { return false; } private static string getLocName(LocationData data) { - string name = data.DisplayName == null ? "No DisplayName" : data.DisplayName; + string name = data.DisplayName ?? "No DisplayName"; string endCheck = name.Substring(name.Length - 7); + switch (name) { + case "Farm_Standard": + case "Farm_Forest": + case "Farm_FourCorners": + case "Farm_Hilltop": + case "Farm_Riverland": + case "Farm_Wilderness": + case "Farm_Beach": + name = "Farm"; + break; + } switch (endCheck) { case "Name]]]": name = "Farm"; @@ -344,7 +355,7 @@ private static string getLocName(LocationData data) { name = "Woods"; break; } - if (name.Length > 25) name = endCheck; + //if (name.Length > 25) name = endCheck; return name; } private static bool canAddFish(SpawnFishData fish, int season, LocationData data) { diff --git a/Almanac/Managers/LuckManager.cs b/Almanac/Managers/LuckManager.cs index a2c67d4..9b3a43c 100644 --- a/Almanac/Managers/LuckManager.cs +++ b/Almanac/Managers/LuckManager.cs @@ -1,5 +1,5 @@ #nullable enable - +/* using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; @@ -229,7 +229,7 @@ public double GetModifiedLuckForDate(ulong seed, WorldDate date) { #region Events - public IRichEvent? HydrateEvent(LocalNotice notice, WorldDate date, Common.GameStateQuery.GameState state, string? key = null) { + public IRichEvent? HydrateEvent(LocalNotice notice, WorldDate date, GameStateQuery state, string? key = null) { if (notice == null) return null; @@ -280,7 +280,7 @@ public double GetModifiedLuckForDate(ulong seed, WorldDate date) { } // Condition Validation - if (!string.IsNullOrEmpty(notice.Condition) && !Common.GameStateQuery.CheckConditions(notice.Condition, state)) + if (!string.IsNullOrEmpty(notice.Condition) && !GameStateQuery.CheckConditions(notice.Condition)) return null; // Get icon @@ -535,7 +535,7 @@ public IEnumerable GetEventsForDate(ulong seed, WorldDate date) { I18n.Page_Fortune_Event_Ufo(), null, SpriteHelper.GetSprite(new SObject(Vector2.Zero, 96)) - );*/ + ); return null; } @@ -605,3 +605,4 @@ public IEnumerable GetEventsForDate(ulong seed, WorldDate date) { #endregion } +*/ diff --git a/Almanac/Managers/NoticesManager.cs b/Almanac/Managers/NoticesManager.cs index d2c9b8e..c306c73 100644 --- a/Almanac/Managers/NoticesManager.cs +++ b/Almanac/Managers/NoticesManager.cs @@ -1,4 +1,4 @@ -#nullable enable +/*#nullable enable using System; using System.Collections.Generic; @@ -805,3 +805,4 @@ public static bool IsBooksellerVisiting(WorldDate date) { #endregion } +*/ diff --git a/Almanac/Menus/BookCollectionMenu.cs b/Almanac/Menus/BookCollectionMenu.cs index 3ee08f0..b57ccb8 100644 --- a/Almanac/Menus/BookCollectionMenu.cs +++ b/Almanac/Menus/BookCollectionMenu.cs @@ -101,7 +101,7 @@ private void DiscoverBooks() { if (value == null || !value.Enable) continue; - bool locked = !string.IsNullOrEmpty(value.Condition) && !Common.GameStateQuery.CheckConditions(value.Condition); + bool locked = !string.IsNullOrEmpty(value.Condition) && !GameStateQuery.CheckConditions(value.Condition); if (value.Secret && locked) continue; @@ -520,7 +520,7 @@ public override void draw(SpriteBatch b) { if (LockedBooks[book]) continue; - var sprite = SpriteHelper.GetSprite(InventoryHelper.CreateItemById($"(O){idx}", 1)); + var sprite = SpriteHelper.GetSprite(ItemRegistry.Create($"(O){idx}")); idx++; float scale = cmp.scale - 1; diff --git a/Almanac/ModAPI.cs b/Almanac/ModAPI.cs index 0c552bf..29d198b 100644 --- a/Almanac/ModAPI.cs +++ b/Almanac/ModAPI.cs @@ -25,10 +25,10 @@ public interface IAlmanacAPI { /// itself doesn't have the ability. /// int DaysPerMonth { get; } - + /* #region Custom Pages - /*void RegisterPage( + void RegisterPage( IManifest manifest, string id, // State @@ -74,9 +74,10 @@ public interface IAlmanacAPI { Action, Action> onCellHover = null ); - void UnregisterPage(IManifest manifest, string id);*/ + void UnregisterPage(IManifest manifest, string id); #endregion + */ #region Crops Page @@ -174,6 +175,7 @@ IReadOnlyCollection phaseSprites #endregion + /* #region Fortunes Page /// @@ -289,6 +291,7 @@ IReadOnlyCollection phaseSprites string GetWeatherForDate(WorldDate date, string context = "Default"); #endregion + */ } public class ModAPI : IAlmanacAPI { @@ -514,7 +517,7 @@ public List GetSeasonCrops(string season) { } #endregion - + /* #region Fortune Telling public void SetFortuneHook(IManifest manifest, Func>> hook) { @@ -530,7 +533,7 @@ public void ClearFortuneHook(IManifest manifest) { } #endregion - + #region Local Notices public void SetNoticesHook(IManifest manifest, Func>> hook) { @@ -546,7 +549,7 @@ public void ClearNoticesHook(IManifest manifest) { } #endregion - + #region Weather public string GetWeatherForDate(WorldDate date, GameLocation location) { @@ -587,6 +590,6 @@ public string GetWeatherForDate(WorldDate date, string context = "Default") { } #endregion - + */ } } diff --git a/Almanac/ModEntry.cs b/Almanac/ModEntry.cs index c2ab690..e0c147f 100644 --- a/Almanac/ModEntry.cs +++ b/Almanac/ModEntry.cs @@ -21,6 +21,7 @@ using StardewValley; using StardewValley.Locations; using StardewValley.Menus; +using StardewValley.BellsAndWhistles; using Leclair.Stardew.Almanac.Crops; using Leclair.Stardew.Almanac.Fish; @@ -62,9 +63,9 @@ public class ModEntry : ModSubscriber { #nullable disable public ModConfig Config; - public WeatherManager Weather; - public LuckManager Luck; - public NoticesManager Notices; + //public WeatherManager Weather; + //public LuckManager Luck; + //public NoticesManager Notices; internal CropManager Crops; internal FishManager Fish; internal BookManager Books; @@ -100,8 +101,8 @@ public override void Entry(IModHelper helper) { Harmony = new Harmony(ModManifest.UniqueID); // Patches - // Patches.GameMenu_Patches.Patch(this); - Common_SpriteText_Patches.Patch(Harmony, Monitor); + Patches.GameMenu_Patches.Patch(this); + //Patches.Workbench_Patches.Patch(this); Assets = new(this); @@ -112,9 +113,9 @@ public override void Entry(IModHelper helper) { Crops = new(this); Fish = new(this); - Weather = new(this); - Luck = new(this); - Notices = new(this); + //Weather = new(this); + //Luck = new(this); + //Notices = new(this); Books = new(this); ThemeManager = new(this, Config.Theme); @@ -124,14 +125,14 @@ public override void Entry(IModHelper helper) { // Init RegisterBuilder(CoverPage.GetPage); RegisterBuilder(CropPage.GetPage); - RegisterBuilder(WeatherPage.GetPage); - RegisterBuilder(WeatherPage.GetIslandPage); + //RegisterBuilder(WeatherPage.GetPage); + //RegisterBuilder(WeatherPage.GetIslandPage); RegisterBuilder(TrainPage.GetPage); - RegisterBuilder(FortunePage.GetPage); + //RegisterBuilder(FortunePage.GetPage); RegisterBuilder(MinesPage.GetPage); - RegisterBuilder(NoticesPage.GetPage); + //RegisterBuilder(NoticesPage.GetPage); RegisterBuilder(FishingPage.GetPage); - RegisterBuilder(DebugItemsPage.GetPage); + //RegisterBuilder(DebugItemsPage.GetPage); } public override object GetApi() { @@ -264,7 +265,7 @@ private void OnButton(object? sender, ButtonPressedEventArgs e) { [Subscriber] [EventPriority(EventPriority.High)] - private void OnDayStarted(object? sender, DayStartedEventArgs e) { + /*private void OnDayStarted(object? sender, DayStartedEventArgs e) { ulong seed = GetBaseWorldSeed(); if (Config.EnableDeterministicLuck && Game1.IsMasterGame) { @@ -289,15 +290,15 @@ private void OnDayStarted(object? sender, DayStartedEventArgs e) { .GetWeatherForDate(seed, tomorrow, ctx, "Island"); } } - } + }*/ public void Invalidate() { Assets.Invalidate(); Crops.Invalidate(); Fish.Invalidate(); - Luck.Invalidate(); - Notices.Invalidate(); - Weather.Invalidate(); + //Luck.Invalidate(); + //Notices.Invalidate(); + //Weather.Invalidate(); } [Subscriber] @@ -323,7 +324,7 @@ private void OnGameLaunched(object? sender, GameLaunchedEventArgs e) { string input = string.Join(' ', args); Log($" Input: {input}"); - Log($"Result: {StringTokenizer.ParseString(input, item: Game1.player?.CurrentItem, monitor: Monitor, trace: true)}"); + // Log($"Result: {StringTokenizer.ParseString(input, item: Game1.player?.CurrentItem, monitor: Monitor, trace: true)}"); }); Helper.ConsoleCommands.Add("al_gsq", "Run a GameStateQuery", (name, args) => { @@ -343,7 +344,7 @@ private void OnGameLaunched(object? sender, GameLaunchedEventArgs e) { Log($" Query: {query}"); if (seed != -1) Log($" Seed: {seed}"); - Log($"Result: {Common.GameStateQuery.CheckConditions(query, rnd: rnd, item: Game1.player.CurrentItem, monitor: Monitor, trace: true)}"); + //Log($"Result: {GameStateQuery.CheckConditions(query, rnd: rnd, item: Game1.player.CurrentItem, monitor: Monitor, trace: true)}"); }); Helper.ConsoleCommands.Add("al_update", "Invalidate cached data.", (name, args) => { @@ -380,7 +381,7 @@ private void OnGameLaunched(object? sender, GameLaunchedEventArgs e) { Log($"DaysPlayed: {Game1.stats.DaysPlayed}", LogLevel.Info); }); - Helper.ConsoleCommands.Add("al_forecast", "Get the forecast for the loaded save.", (name, args) => { + /*Helper.ConsoleCommands.Add("al_forecast", "Get the forecast for the loaded save.", (name, args) => { ulong seed = GetBaseWorldSeed(); WorldDate date = new(Game1.Date); for (int i = 0; i < 4 * 28; i++) { @@ -388,7 +389,7 @@ private void OnGameLaunched(object? sender, GameLaunchedEventArgs e) { Log($"Date: {date.Localize()} -- Weather: {weather}"); date.TotalDays++; } - }); + });*/ } [Subscriber] @@ -883,7 +884,7 @@ public ulong GetBaseWorldSeed() { } public bool DoesTranslationExist(string key) { - return Helper.Translation.ContainsKey(key); + return Helper.Translation.Get(key).HasValue(); } public string GetSubLocationName(Models.SubLocation sub) { @@ -904,6 +905,8 @@ public string GetSubLocationName(Models.SubLocation sub) { return I18n.Location_Forest_River(); if (sub.Area == "Pond") return I18n.Location_Forest_Pond(); + if (sub.Area == "Lake") + return I18n.Location_Forest_Lake(); break; case "IslandWest": @@ -912,6 +915,11 @@ public string GetSubLocationName(Models.SubLocation sub) { if (sub.Area == "Freshwater") return I18n.Location_Island_Freshwater(); break; + + case "Desert": + if (sub.Area == "TopPond") + return I18n.Location_Desert_TopPond(); + break; } return sub.Area.ToString(); @@ -1023,6 +1031,13 @@ public string GetSubLocationName(Models.SubLocation sub) { case "Deluxe Barn": case "Deluxe Coop": case "Farm": + case "Farm_Standard": + case "Farm_Forest": + case "Farm_FourCorners": + case "Farm_Hilltop": + case "Farm_Riverland": + case "Farm_Wilderness": + case "Farm_Beach": case "FarmCave": case "FarmHouse": case "Greenhouse": diff --git a/Almanac/Pages/FortunePage.cs b/Almanac/Pages/FortunePage.cs index 12f3c5c..5032602 100644 --- a/Almanac/Pages/FortunePage.cs +++ b/Almanac/Pages/FortunePage.cs @@ -1,3 +1,4 @@ +/* #nullable enable using System; @@ -86,7 +87,7 @@ public override void Update() { double luck = Mod.Luck.GetModifiedLuckForDate(Seed, date); sprite = Sprites![day - 1] = Mod.Luck.GetLuckSprite(luck); Luck![day - 1] = luck; - } else + } else sprite = null; FlowBuilder db = new(); @@ -242,3 +243,4 @@ public void PerformCellHover(int x, int y, WorldDate date, Rectangle bounds) { #endregion } +*/ diff --git a/Almanac/Pages/MinesPage.cs b/Almanac/Pages/MinesPage.cs index a1c3a7d..de33107 100644 --- a/Almanac/Pages/MinesPage.cs +++ b/Almanac/Pages/MinesPage.cs @@ -40,15 +40,15 @@ public MinesPage(AlmanacMenu menu, ModEntry mod) : base(menu, mod) { Sprites = new(); Sprites[LevelType.Mushroom] = SpriteHelper.GetSprite( - InventoryHelper.CreateItemById("(O)420", 1) // Red Mushroom + ItemRegistry.Create("(O)420", 1) // Red Mushroom ); Sprites[LevelType.InfestedMonster] = SpriteHelper.GetSprite( - InventoryHelper.CreateItemById("(W)0", 1) // Rusty Sword + ItemRegistry.Create("(W)0", 1) // Rusty Sword ); Sprites[LevelType.InfestedSlime] = SpriteHelper.GetSprite( - InventoryHelper.CreateItemById("(O)766", 1) // Slime + ItemRegistry.Create("(O)766", 1) // Slime ); Sprites[LevelType.Quarry] = new SpriteInfo( @@ -62,7 +62,7 @@ public MinesPage(AlmanacMenu menu, ModEntry mod) : base(menu, mod) { ); Sprites[LevelType.Dino] = SpriteHelper.GetSprite( - InventoryHelper.CreateItemById("(O)107", 1) // Dino Egg + ItemRegistry.Create("(O)107", 1) // Dino Egg ); Update(); diff --git a/Almanac/Pages/NoticesPage.cs b/Almanac/Pages/NoticesPage.cs index 8510146..5c70ff4 100644 --- a/Almanac/Pages/NoticesPage.cs +++ b/Almanac/Pages/NoticesPage.cs @@ -1,3 +1,4 @@ +/* #nullable enable using System; @@ -411,3 +412,4 @@ public void PerformCellHover(int x, int y, WorldDate date, Rectangle bounds) { #endregion } +*/ diff --git a/Almanac/Pages/WeatherPage.cs b/Almanac/Pages/WeatherPage.cs index e621c8e..42d7ca5 100644 --- a/Almanac/Pages/WeatherPage.cs +++ b/Almanac/Pages/WeatherPage.cs @@ -1,3 +1,4 @@ +/* #nullable enable using System; @@ -214,7 +215,7 @@ public override void Update() { } builder.Text("\n\n"); - }*/ + } if (pirateDays!.Count > 0) { string dates = string.Join(", ", pirateDays); @@ -333,3 +334,4 @@ public void PerformCellHover(int x, int y, WorldDate date, Rectangle bounds) { #endregion } +*/ diff --git a/Almanac/Patches/Game1_Patches.cs b/Almanac/Patches/Game1_Patches.cs index 8830b35..55308c6 100644 --- a/Almanac/Patches/Game1_Patches.cs +++ b/Almanac/Patches/Game1_Patches.cs @@ -18,7 +18,7 @@ internal static class Game1_Patches { internal static void Patch(ModEntry mod) { Monitor = mod.Monitor; - + /* try { mod.Harmony.Patch( original: AccessTools.Method(typeof(Game1), nameof(Game1.UpdateWeatherForNewDay)), @@ -27,9 +27,9 @@ internal static void Patch(ModEntry mod) { } catch(Exception ex) { mod.Log("An error occurred while registering a harmony patch for Game1.", LogLevel.Error, ex); - } + }*/ } - + /* public static void UpdateWeatherForNewDay_Postfix() { try { ModEntry.Instance.Weather.UpdateForNewDay(); @@ -39,4 +39,5 @@ public static void UpdateWeatherForNewDay_Postfix() { Monitor.Log($"Details:\n{ex}", LogLevel.Error); } } + */ } diff --git a/Almanac/i18n/default.json b/Almanac/i18n/default.json index 8887ac0..3b07ab6 100644 --- a/Almanac/i18n/default.json +++ b/Almanac/i18n/default.json @@ -351,27 +351,31 @@ "location.Forest.River": "River", "location.Forest.Pond": "Pond", + "location.Forest.Lake": "Lake", "location.Island.Ocean": "Ocean", "location.Island.Freshwater": "Freshwater", - + "Location.Desert.TopPond": "TopPond", // Maps: Stardew Aquarium "location.Custom_ExteriorMuseum": "Stardew Aquarium", // Maps: Stardew Valley Expanded "location.Custom_AdventurerSummit": "Adventurer Summit", "location.Custom_BlueMoonVineyard": "Blue Moon Vineyard", - "location.Custom_BlueMoonVineyard.0": "Ocean", - "location.Custom_BlueMoonVineyard.1": "River", + "location.Custom_BlueMoonVineyard.Ocean": "Ocean", + "location.Custom_BlueMoonVineyard.River": "River", "location.Custom_CrimsonBadlands": "Crimson Badlands", "location.Custom_FableReef": "Fable Reef", "location.Custom_ForestWest": "West Cindersap Forest", "location.Custom_Highlands": "The Highlands", - "location.Custom_Highlands.0": "Ruins", - "location.Custom_Highlands.1": "River", + "location.Custom_Highlands.Pond": "Pond", + "location.Custom_Highlands.River": "River", "location.Custom_HighlandsCavern": "The Highlands (Cavern)", "location.Custom_JunimoWoods": "Junimo Woods", - //"location.Custom_MorrisProperty": "", + "location.Custom_MorrisProperty": "Morris Property", + "location.Custom_HenchmanBackyard": "Henchman Backyard", + "location.Custom_ForbiddenMaze": "Forbidden Maze", + "location.Custom_DiamondCavern": "Diamond Cavern", "location.Custom_ShearwaterBridge": "Shearwater Bridge", "location.Custom_SpriteSpring2": "Sprite Spring", "location.Custom_GrampletonSuburbs": "Grampleton Suburbs", diff --git a/Almanac/i18n/zh.json b/Almanac/i18n/zh.json index ce29dc4..df9fe2a 100644 --- a/Almanac/i18n/zh.json +++ b/Almanac/i18n/zh.json @@ -21,7 +21,16 @@ "crop.last-day": "最后一天:", "crop.toggle": "切换{{mode}}", - "crop.paddy": "水稻奖金", + "crop.paddy": "水稻灌溉加成", + + "crop.crop.none": "没有作物符合你现在的筛选。", + + "page.crop.seed-filter": "按种子筛选", + "page.crop.seed-filter.disabled": "关闭", + "page.crop.seed-filter.inventory": "背包中", + "page.crop.seed-filter.owned": "拥有的", + + "crop.seed-filter": "只展示拥有的种子", "crop.using-none": "以下的生长时间和日期假设你没有肥料或技能。", "crop.using-agri": "以下的生长时间和日期假设你是一个{{agriculturist}}。", @@ -54,9 +63,10 @@ "weather.sunny": "晴天", "weather.rain": "雨天", "weather.debris": "多云", - "weather.lightning": "雷雨天", + "weather.lightning": "雷雨", "weather.festival": "晴天", - "weather.snow": "下雪天", + "weather.snow": "雪天", + "weather.green": "绿雨", "page.train": "火车时刻表", "page.train.about": "@B警告:@b 火车将在以下时间经过星露谷火车站。 为了您的安全,当有火车出现时,请保持与轨道的距离。", @@ -124,8 +134,8 @@ "page.fish.size": "你钓到过的最大尺寸是@B{{big_cm}}\"厘米@b。", "page.fish.size.range": "它的尺寸范围为@B{{min_cm}}\"厘米@b至@B{{max_cm}}\"厘米@b。", - "page.fish.weather.Sunny": "{{fish}}只在@Bsunny@b的天气可钓到。", - "page.fish.weather.Rainy": "{{fish}}只在@Brainy@b的天气可钓到。", + "page.fish.weather.Sunny": "{{fish}}只在@B晴朗@b的天气可钓到。", + "page.fish.weather.Rainy": "{{fish}}只在@B下雨@b的天气可钓到。", "page.fish.weather.Any": "{{fish}}任何天气都能钓,风雨无阻。 ", "page.fish.level": "你需要{{skill}}的@B{{level}}@b级别才能钓到这种鱼。", "page.fish.legendary": "{{fish}}是传说鱼类。", @@ -157,6 +167,13 @@ "page.fish.location.fresh": "{{fish}}生活在淡水区域。", "page.fish.location.ocean": "{{fish}}生活在海水区域。", + "page.fish.filter.aquarium": "按水族馆捐赠筛选", + "page.fish.aquarium.true": "已捐赠", + "page.fish.aquarium.false": "未捐赠", + + "page.fish.aquarium.donated": "你已经捐给了星露谷水族馆。", + "page.fish.aquarium.not-donated": "你还没有捐给星露谷水族馆。", + // Settings "settings.button": "显示年历按钮", @@ -272,7 +289,7 @@ // Locations - "location.WitchSwamp": "女巫的沼泽", + "location.WitchSwamp": "女巫沼泽", "location.BugLand": "突变虫穴", "location.Caldera": "姜岛(火山地牢)", @@ -282,34 +299,43 @@ "location.IslandSouthEast": "姜岛东南部", "location.IslandSouthEastCave": "姜岛东南部(洞穴)", "location.IslandEast": "姜岛东部", + "location.Submarine": "潜艇", "location.sub-any": "任何地点", "location.sub-floor": "{{floor}}层", "location.Forest.River": "河边", "location.Forest.Pond": "池塘", + "location.Forest.Lake": "湖泊", "location.Island.Ocean": "海边", "location.Island.Freshwater": "淡水区", + "Location.Desert.TopPond": "池塘", + // Maps: Stardew Aquarium "location.Custom_ExteriorMuseum": "星露谷水族馆", "location.ExteriorMuseum": "星露谷水族馆", // Maps: Stardew Valley Expanded - "location.Custom_AdventurerSummit": "冒险家公会", + "location.Custom_AdventurerSummit": "探险家山峰", "location.Custom_BlueMoonVineyard": "蓝月亮葡萄园", - "location.Custom_BlueMoonVineyard.0": "海边", - "location.Custom_BlueMoonVineyard.1": "河边", - "location.Custom_CrimsonBadlands": "猩红荒地", - "location.Custom_FableReef": "寓言礁石", + "location.Custom_BlueMoonVineyard.Ocean": "海边", + "location.Custom_BlueMoonVineyard.River": "河边", + "location.Custom_CrimsonBadlands": "绯红荒地", + "location.Custom_FableReef": "寓言礁", "location.Custom_ForestWest": "煤矿森林西", "location.Custom_Highlands": "高地", - "location.Custom_Highlands.0": "废墟", - "location.Custom_Highlands.1": "河边", - "location.Custom_HighlandsCavern": "高地(洞穴)", + "location.Custom_Highlands.Pond": "池塘", + "location.Custom_Highlands.River": "河边", + "location.Custom_HighlandsCavern": "高地洞穴", "location.Custom_JunimoWoods": "祝尼魔森林", - //"location.Custom_MorrisProperty": "", - "location.Custom_ShearwaterBridge": "海鸥栈桥", - "location.Custom_SpriteSpring2": "精灵温泉" + "location.Custom_MorrisProperty": "莫里斯地产", + "location.Custom_HenchmanBackyard": "仆从后院", + "location.Custom_ForbiddenMaze": "禁忌迷宫", + "location.Custom_DiamondCavern": "钻石洞穴", + "location.Custom_ShearwaterBridge": "海鸥桥", + "location.Custom_SpriteSpring2": "精灵泉", + "location.Custom_GrampletonSuburbs": "郊区", + "location.Custom_GrampletonSuburbsTrainStation": "郊区火车站" } diff --git a/Almanac/manifest.json b/Almanac/manifest.json index f30096e..f9a08b9 100644 --- a/Almanac/manifest.json +++ b/Almanac/manifest.json @@ -10,9 +10,10 @@ "UniqueID": "leclair.almanac", "Name": "Almanac", "Author": "Khloe Leclair", - "Version": "0.18.1-Debug", + "Version": "0.18.1", "Description": "Adds an Almanac for the player, with forecasts, planting dates, and other calendar information useful for a farmer.", - "MinimumApiVersion": "3.17.0", + "MinimumApiVersion": "4.1.0", + "MinimumGameVersion": "1.6.9", "EntryDll": "Almanac.dll", "Dependencies": [ { From e007810540d61106242772c98870a639b0bfc579 Mon Sep 17 00:00:00 2001 From: xysztm Date: Tue, 5 Nov 2024 20:46:13 +0800 Subject: [PATCH 3/3] Revert "Edit the path for my path" This reverts commit aa42d21a1cbacb6dcd279ca02249f2e8488cc9fb. --- _build/common.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_build/common.targets b/_build/common.targets index c131382..18f0d85 100644 --- a/_build/common.targets +++ b/_build/common.targets @@ -30,9 +30,9 @@ - - - D:\SteamLibrary\steamapps\common\Stardew Valley + + + C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley C:\ $(GamePath)\$(ModSet)