From 4b41dd726e82c65ec52300fa3c87f43d0aa654d1 Mon Sep 17 00:00:00 2001 From: aedenthorn Date: Thu, 7 Oct 2021 13:55:39 -0400 Subject: [PATCH] etc --- .../AdvancedLootFramework.csproj | 4 +- AdvancedLootFramework/packages.config | 2 +- .../AdvancedMeleeFramework.csproj | 4 +- AdvancedMeleeFramework/packages.config | 2 +- BiggerMineFloors/BiggerMineFloors.csproj | 4 +- BiggerMineFloors/packages.config | 2 +- BossCreatures/BossCreatures.csproj | 4 +- BossCreatures/packages.config | 2 +- CustomChestTypes/CustomChestTypes.csproj | 4 +- CustomChestTypes/packages.config | 2 +- CustomDecorationAreas/CodePatches.cs | 24 ++-- .../CustomDecorationAreas.csproj | 71 +--------- CustomDecorationAreas/ModEntry.cs | 2 +- CustomDecorationAreas/packages.config | 2 +- CustomLocks/CustomLocks.csproj | 4 +- CustomLocks/packages.config | 2 +- .../CustomMonsterFloors.csproj | 4 +- CustomMonsterFloors/packages.config | 2 +- CustomOreNodes/CustomOreNodes.csproj | 105 +-------------- CustomOreNodes/ModEntry.cs | 10 +- CustomOreNodes/packages.config | 2 +- CustomPaintings/CustomPaintings.csproj | 4 +- CustomPaintings/packages.config | 2 +- .../CustomResourceClumps.csproj | 4 +- CustomResourceClumps/packages.config | 2 +- CustomSpousePatio/CustomSpousePatio.csproj | 4 +- CustomSpousePatio/packages.config | 2 +- .../CustomSpousePatioWizard.csproj | 4 +- CustomSpousePatioWizard/packages.config | 2 +- CustomTextColours/CustomTextColours.csproj | 4 +- CustomTextColours/packages.config | 2 +- CustomWarpPoints/CustomWarpPoints.csproj | 4 +- CustomWarpPoints/packages.config | 2 +- DialogueTrees/DialogueTrees.csproj | 4 +- DialogueTrees/packages.config | 2 +- ExpertSitting/ExpertSitting.csproj | 4 +- ExpertSitting/packages.config | 2 +- ExtraMapLayers/ExtraMapLayers.csproj | 4 +- ExtraMapLayers/packages.config | 2 +- Familiars/Familiars.csproj | 4 +- Familiars/packages.config | 2 +- FarmAnywhere/FarmAnywhere.csproj | 4 +- FarmAnywhere/packages.config | 2 +- FireBreath/FireBreath.csproj | 4 +- FireBreath/packages.config | 2 +- .../FishingChestsExpanded.csproj | 4 +- FishingChestsExpanded/packages.config | 2 +- FlowingMineRocks/FlowingMineRocks.csproj | 4 +- FlowingMineRocks/packages.config | 2 +- FriendlyDivorce/FriendlyDivorce.csproj | 4 +- FriendlyDivorce/packages.config | 2 +- FruitTreeShaker/FruitTreeShaker.csproj | 4 +- FruitTreeShaker/packages.config | 2 +- GemIsles/GemIsles.csproj | 4 +- GemIsles/packages.config | 2 +- HereFishy/HereFishy.csproj | 4 +- HereFishy/packages.config | 2 +- .../InstantGrowthPowder.csproj | 4 +- InstantGrowthPowder/packages.config | 2 +- LooseAudioFiles/LooseAudioFiles.csproj | 4 +- LooseAudioFiles/packages.config | 2 +- MagnetMod/MagnetMod.csproj | 4 +- MagnetMod/packages.config | 2 +- MapEdit/MapEdit.csproj | 4 +- MapEdit/packages.config | 2 +- MapTeleport/MapTeleport.csproj | 71 +--------- MapTeleport/packages.config | 2 +- MobileArcade/MobileArcade.csproj | 4 +- MobileArcade/packages.config | 2 +- MobileAudioPlayer/MobileAudioPlayer.csproj | 4 +- MobileAudioPlayer/packages.config | 2 +- MobileCalendar/MobileCalendar.csproj | 4 +- MobileCalendar/packages.config | 2 +- MobileCatalogues/MobileCatalogues.csproj | 4 +- MobileCatalogues/packages.config | 2 +- MobilePhone/MobilePhone.csproj | 4 +- MobilePhone/packages.config | 2 +- MobileTelevision/MobileTelevision.csproj | 4 +- MobileTelevision/packages.config | 2 +- ModThis/ModThis.csproj | 4 +- ModThis/packages.config | 2 +- MoveableMailbox/MoveableMailbox.csproj | 4 +- MoveableMailbox/packages.config | 2 +- MoveablePetBowl/MoveablePetBowl.csproj | 4 +- MoveablePetBowl/packages.config | 2 +- .../MultiStoryFarmhouse.csproj | 4 +- MultiStoryFarmhouse/packages.config | 2 +- MultipleSpouses/Misc.cs | 5 +- MultipleSpouses/MultipleSpouses.csproj | 127 +----------------- MultipleSpouses/packages.config | 2 +- Murdercrows/Murdercrows.csproj | 4 +- Murdercrows/packages.config | 2 +- .../NonRandomPrairieKing.csproj | 4 +- NonRandomPrairieKing/packages.config | 2 +- .../OutdoorButterflyHutch.csproj | 4 +- OutdoorButterflyHutch/packages.config | 2 +- OverworldChests/OverworldChests.csproj | 4 +- OverworldChests/packages.config | 2 +- PacifistValley/PacifistValley.csproj | 4 +- PacifistValley/packages.config | 2 +- ParrotPerch/ParrotPerch.csproj | 4 +- ParrotPerch/packages.config | 2 +- .../PersisitentGrangeDisplay.csproj | 4 +- PersisitentGrangeDisplay/packages.config | 2 +- PlaceShaft/PlaceShaft.csproj | 4 +- PlaceShaft/packages.config | 2 +- ProceduralDungeons/ProceduralDungeons.csproj | 4 +- ProceduralDungeons/packages.config | 2 +- QuickLoad/QuickLoad.csproj | 4 +- QuickLoad/packages.config | 2 +- QuickResponses/QuickResponses.csproj | 4 +- QuickResponses/packages.config | 2 +- Quotes/Quotes.csproj | 4 +- Quotes/packages.config | 2 +- RandomNPC/RandomNPC.csproj | 4 +- RandomNPC/packages.config | 2 +- RealNames/RealNames.csproj | 4 +- RealNames/packages.config | 2 +- Renovations/Renovations.csproj | 59 +++++++- Renovations/app.config | 11 ++ Renovations/packages.config | 16 ++- ShowPlayerBehind/ShowPlayerBehind.csproj | 4 +- ShowPlayerBehind/packages.config | 2 +- SixtyNine/SixtyNine.csproj | 4 +- SixtyNine/packages.config | 2 +- SocialNetwork/SocialNetwork.csproj | 4 +- SocialNetwork/packages.config | 2 +- .../SocialPageOrderButton.csproj | 4 +- SocialPageOrderButton/packages.config | 2 +- Swim/AbigailProjectile.cs | 18 +-- Swim/BigFishie.cs | 24 ++-- Swim/Fishie.cs | 60 ++++----- Swim/SeaCrab.cs | 84 ++++++------ Swim/Swim.csproj | 127 +----------------- Swim/SwimHelperEvents.cs | 40 +++--- Swim/SwimMaps.cs | 4 +- Swim/SwimPatches.cs | 24 ++-- Swim/SwimUtils.cs | 18 +-- Swim/manifest.json | 4 +- Swim/packages.config | 2 +- Terrarium/ATerrarium.csproj | 4 +- Terrarium/packages.config | 2 +- .../CustomFixedDialogue.csproj | 4 +- TotallyUnrelatedProject/packages.config | 2 +- TransparentObjects/TransparentObjects.csproj | 4 +- TransparentObjects/packages.config | 2 +- TrashCanReactions/TrashCanReactions.csproj | 4 +- TrashCanReactions/packages.config | 2 +- .../TreasureChestsExpanded.csproj | 4 +- TreasureChestsExpanded/packages.config | 2 +- UndergroundSecrets/UndergroundSecrets.csproj | 4 +- UndergroundSecrets/packages.config | 2 +- VideoPlayer/VideoPlayer.csproj | 4 +- VideoPlayer/packages.config | 2 +- WitcherMod/WitcherMod.csproj | 4 +- WitcherMod/packages.config | 2 +- YAJM/ModConfig.cs | 2 +- YAJM/ModEntry.cs | 21 +-- YAJM/Properties/AssemblyInfo.cs | 36 ----- YAJM/YAJM.csproj | 73 +--------- YAJM/manifest.json | 4 +- YAJM/packages.config | 4 - ZombieOutbreak/ZombieOutbreak.csproj | 4 +- ZombieOutbreak/packages.config | 2 +- _releases/YAJM 0.7.0.zip | Bin 0 -> 38152 bytes 165 files changed, 490 insertions(+), 960 deletions(-) create mode 100644 Renovations/app.config delete mode 100644 YAJM/Properties/AssemblyInfo.cs delete mode 100644 YAJM/packages.config create mode 100644 _releases/YAJM 0.7.0.zip diff --git a/AdvancedLootFramework/AdvancedLootFramework.csproj b/AdvancedLootFramework/AdvancedLootFramework.csproj index c2d85876..a7d425d9 100644 --- a/AdvancedLootFramework/AdvancedLootFramework.csproj +++ b/AdvancedLootFramework/AdvancedLootFramework.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/AdvancedLootFramework/packages.config b/AdvancedLootFramework/packages.config index 3727d0d6..7e47d9af 100644 --- a/AdvancedLootFramework/packages.config +++ b/AdvancedLootFramework/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/AdvancedMeleeFramework/AdvancedMeleeFramework.csproj b/AdvancedMeleeFramework/AdvancedMeleeFramework.csproj index 5f15f32b..325febf3 100644 --- a/AdvancedMeleeFramework/AdvancedMeleeFramework.csproj +++ b/AdvancedMeleeFramework/AdvancedMeleeFramework.csproj @@ -65,11 +65,11 @@ - + 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}. - + \ No newline at end of file diff --git a/AdvancedMeleeFramework/packages.config b/AdvancedMeleeFramework/packages.config index 3727d0d6..7e47d9af 100644 --- a/AdvancedMeleeFramework/packages.config +++ b/AdvancedMeleeFramework/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/BiggerMineFloors/BiggerMineFloors.csproj b/BiggerMineFloors/BiggerMineFloors.csproj index 341b618c..1bc31122 100644 --- a/BiggerMineFloors/BiggerMineFloors.csproj +++ b/BiggerMineFloors/BiggerMineFloors.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/BiggerMineFloors/packages.config b/BiggerMineFloors/packages.config index 3727d0d6..7e47d9af 100644 --- a/BiggerMineFloors/packages.config +++ b/BiggerMineFloors/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/BossCreatures/BossCreatures.csproj b/BossCreatures/BossCreatures.csproj index acb769a6..b5dba32d 100644 --- a/BossCreatures/BossCreatures.csproj +++ b/BossCreatures/BossCreatures.csproj @@ -96,11 +96,11 @@ - + 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}. - + \ No newline at end of file diff --git a/BossCreatures/packages.config b/BossCreatures/packages.config index 3727d0d6..7e47d9af 100644 --- a/BossCreatures/packages.config +++ b/BossCreatures/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomChestTypes/CustomChestTypes.csproj b/CustomChestTypes/CustomChestTypes.csproj index d40c5578..0d022f95 100644 --- a/CustomChestTypes/CustomChestTypes.csproj +++ b/CustomChestTypes/CustomChestTypes.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomChestTypes/packages.config b/CustomChestTypes/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomChestTypes/packages.config +++ b/CustomChestTypes/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomDecorationAreas/CodePatches.cs b/CustomDecorationAreas/CodePatches.cs index 4b0e6810..f0faa70b 100644 --- a/CustomDecorationAreas/CodePatches.cs +++ b/CustomDecorationAreas/CodePatches.cs @@ -17,9 +17,9 @@ internal class CodePatches public static void getFloors_Postfix(DecoratableLocation __instance, ref List __result) { - if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.name)) + if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.Name)) return; - FloorWallData data = ModEntry.floorsWallsDataDict[__instance.name]; + FloorWallData data = ModEntry.floorsWallsDataDict[__instance.Name]; if (data.getFloorsFromFile?.Length > 0) data.floors = ModEntry.PHelper.Content.Load>(data.getFloorsFromFile, ContentSource.GameContent); if (data.replaceFloors) @@ -30,9 +30,9 @@ public static void getFloors_Postfix(DecoratableLocation __instance, ref List __result) { - if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.name)) + if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.Name)) return; - FloorWallData data = ModEntry.floorsWallsDataDict[__instance.name]; + FloorWallData data = ModEntry.floorsWallsDataDict[__instance.Name]; if (data.getWallsFromFile?.Length > 0) data.walls = ModEntry.PHelper.Content.Load>(data.getWallsFromFile, ContentSource.GameContent); if (data.replaceWalls) @@ -46,11 +46,11 @@ public static void loadForNewGame_Postfix() return; for(int i = Game1.locations.Count - 1; i>= 0; i--) { - if (Game1.locations[i].GetType() == typeof(GameLocation) && ModEntry.floorsWallsDataDict.ContainsKey(Game1.locations[i].name)) + if (Game1.locations[i].GetType() == typeof(GameLocation) && ModEntry.floorsWallsDataDict.ContainsKey(Game1.locations[i].Name)) { GameLocation gl = Game1.locations[i]; ModEntry.PMonitor.Log($"Converting {gl.name} to decoratable"); - DecoratableLocation dl = new DecoratableLocation(gl.mapPath, gl.name); + DecoratableLocation dl = new DecoratableLocation(gl.mapPath.Value, gl.Name); if (dl.map.GetTileSheet("walls_and_floors") == null) { Texture2D tex = ModEntry.PHelper.Content.Load($"Maps/walls_and_floors", ContentSource.GameContent); @@ -64,22 +64,22 @@ public static void loadForNewGame_Postfix() for (int j = gl.characters.Count - 1; j >= 0; j--) { NPC npc = gl.characters[j]; - NPC newNPC = new NPC(new AnimatedSprite(npc.sprite.Value.textureName.Value, npc.sprite.Value.currentFrame, npc.sprite.Value.spriteWidth, npc.sprite.Value.SpriteHeight), ModEntry.PHelper.Reflection.GetField(npc, "defaultPosition").GetValue().Value, Game1.locations[i].name, ModEntry.PHelper.Reflection.GetField(npc, "defaultFacingDirection").GetValue(), npc.Name, npc.datable.Value, null, Game1.content.Load($"Portraits\\{npc.Name}")); - ModEntry.PMonitor.Log($"Adding {newNPC.name}, sprite {newNPC.sprite.Value.textureName.Value}"); + NPC newNPC = new NPC(new AnimatedSprite(npc.sprite.Value.textureName.Value, npc.sprite.Value.currentFrame, npc.sprite.Value.SpriteWidth, npc.sprite.Value.SpriteHeight), ModEntry.PHelper.Reflection.GetField(npc, "defaultPosition").GetValue().Value, Game1.locations[i].Name, ModEntry.PHelper.Reflection.GetField(npc, "defaultFacingDirection").GetValue(), npc.Name, npc.datable.Value, null, Game1.content.Load($"Portraits\\{npc.Name}")); + ModEntry.PMonitor.Log($"Adding {newNPC.Name}, sprite {newNPC.Sprite.textureName.Value}"); Game1.locations[Game1.locations.Count - 1].addCharacter(newNPC); } } foreach (Vector2 key in gl.objects.Keys) dl.objects.Add(key, gl.objects[key]); - ModEntry.convertedLocations.Add(dl.name); + ModEntry.convertedLocations.Add(dl.Name); } } } public static bool doSetVisibleFloor_Prefix(DecoratableLocation __instance, int whichRoom, int which) { - if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.name)) + if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.Name)) return true; int idx = -1; @@ -162,7 +162,7 @@ public static bool doSetVisibleFloor_Prefix(DecoratableLocation __instance, int } public static bool doSetVisibleWallpaper_Prefix(DecoratableLocation __instance, int whichRoom, int which) { - if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.name)) + if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.Name)) return true; int idx = -1; @@ -313,7 +313,7 @@ public static bool IsFloorableTile(int x, int y, string layer, DecoratableLocati public static bool IsFloorableOrWallpaperableTile_Prefix(DecoratableLocation __instance, ref bool __result, int x, int y, string layer_name) { - if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.name)) + if (!ModEntry.config.EnableMod || !ModEntry.floorsWallsDataDict.ContainsKey(__instance.Name)) return true; __result = IsFloorableOrWallpaperableTile(x, y, layer_name, __instance); return false; diff --git a/CustomDecorationAreas/CustomDecorationAreas.csproj b/CustomDecorationAreas/CustomDecorationAreas.csproj index 69197ce6..8ea89745 100644 --- a/CustomDecorationAreas/CustomDecorationAreas.csproj +++ b/CustomDecorationAreas/CustomDecorationAreas.csproj @@ -1,70 +1,11 @@ - - - + - Debug - AnyCPU - {D505B178-43FC-4BA9-9DC8-F1C494BAC0AA} - Library - Properties - CustomDecorationAreas - CustomDecorationAreas - v4.5.2 - 512 - true - - - true + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - - - 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}. - - - \ No newline at end of file diff --git a/CustomDecorationAreas/ModEntry.cs b/CustomDecorationAreas/ModEntry.cs index 72ed3a3f..427b319b 100644 --- a/CustomDecorationAreas/ModEntry.cs +++ b/CustomDecorationAreas/ModEntry.cs @@ -97,7 +97,7 @@ private void GameLoop_GameLaunched(object sender, StardewModdingAPI.Events.GameL } } } - Monitor.Log($"Loaded {floorsWallsDataDict.Count} floors."); + Monitor.Log($"Loaded floors and walls for {floorsWallsDataDict.Count} locations."); } } } \ No newline at end of file diff --git a/CustomDecorationAreas/packages.config b/CustomDecorationAreas/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomDecorationAreas/packages.config +++ b/CustomDecorationAreas/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomLocks/CustomLocks.csproj b/CustomLocks/CustomLocks.csproj index 66e52470..53cc9298 100644 --- a/CustomLocks/CustomLocks.csproj +++ b/CustomLocks/CustomLocks.csproj @@ -80,11 +80,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomLocks/packages.config b/CustomLocks/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomLocks/packages.config +++ b/CustomLocks/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomMonsterFloors/CustomMonsterFloors.csproj b/CustomMonsterFloors/CustomMonsterFloors.csproj index 717d527f..c318d30c 100644 --- a/CustomMonsterFloors/CustomMonsterFloors.csproj +++ b/CustomMonsterFloors/CustomMonsterFloors.csproj @@ -81,11 +81,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomMonsterFloors/packages.config b/CustomMonsterFloors/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomMonsterFloors/packages.config +++ b/CustomMonsterFloors/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomOreNodes/CustomOreNodes.csproj b/CustomOreNodes/CustomOreNodes.csproj index eb1eacc8..8ea89745 100644 --- a/CustomOreNodes/CustomOreNodes.csproj +++ b/CustomOreNodes/CustomOreNodes.csproj @@ -1,104 +1,11 @@ - - - + - Debug - AnyCPU - {80AA7B9A-03DE-4B2C-BB26-9F9514127A2E} - Library - Properties - CustomOreNodes - CustomOreNodes - v4.5.2 - 512 - true - - - true + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - pdbonly - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - TRACE - true - pdbonly - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - + - - PreserveNewest - + - - - - - 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}. - - - \ No newline at end of file diff --git a/CustomOreNodes/ModEntry.cs b/CustomOreNodes/ModEntry.cs index 8c3b5a68..450e869b 100644 --- a/CustomOreNodes/ModEntry.cs +++ b/CustomOreNodes/ModEntry.cs @@ -1,4 +1,4 @@ -using Harmony; +using HarmonyLib; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using StardewModdingAPI; @@ -30,7 +30,7 @@ public override void Entry(IModHelper helper) context = this; Config = Helper.ReadConfig(); SMonitor = Monitor; - var harmony = HarmonyInstance.Create(ModManifest.UniqueID); + var harmony = new Harmony(ModManifest.UniqueID); harmony.Patch( original: AccessTools.Method(typeof(MineShaft), "chooseStoneType"), @@ -67,7 +67,7 @@ private static bool Object_draw_Prefix(Object __instance, SpriteBatch spriteBatc if (node == null) return true; - if (__instance.fragility != 2) + if (__instance.Fragility != 2) { spriteBatch.Draw(Game1.shadowTexture, Game1.GlobalToLocal(Game1.viewport, new Vector2(x * 64 + 32, y * 64 + 51 + 4)), new Rectangle?(Game1.shadowTexture.Bounds), Color.White * alpha, 0f, new Vector2(Game1.shadowTexture.Bounds.Center.X, Game1.shadowTexture.Bounds.Center.Y), 4f, SpriteEffects.None, __instance.getBoundingBox(new Vector2(x, y)).Bottom / 15000f); } @@ -77,7 +77,7 @@ private static bool Object_draw_Prefix(Object __instance, SpriteBatch spriteBatc float rotation2 = 0f; Vector2 origin2 = new Vector2(8f, 8f); Vector2 vector2 = __instance.scale; - spriteBatch.Draw(node.texture, position3, sourceRectangle2, color2, rotation2, origin2, (__instance.scale.Y > 1f) ? __instance.getScale().Y : 4f, __instance.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (__instance.isPassable() ? __instance.getBoundingBox(new Vector2(x, y)).Top : __instance.getBoundingBox(new Vector2(x, y)).Bottom) / 10000f); + spriteBatch.Draw(node.texture, position3, sourceRectangle2, color2, rotation2, origin2, (__instance.scale.Y > 1f) ? __instance.getScale().Y : 4f, __instance.Flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (__instance.isPassable() ? __instance.getBoundingBox(new Vector2(x, y)).Top : __instance.getBoundingBox(new Vector2(x, y)).Bottom) / 10000f); return false; } @@ -228,7 +228,7 @@ private void GameLoop_GameLaunched(object sender, StardewModdingAPI.Events.GameL private static void chooseStoneType_Postfix(MineShaft __instance, ref Object __result, Vector2 tile) { - if (__result == null || __result.parentSheetIndex == null) + if (__result == null || __result.ParentSheetIndex == null) return; int difficulty = __instance.mineLevel > 120 ? Game1.netWorldState.Value.SkullCavesDifficulty : Game1.netWorldState.Value.MinesDifficulty; diff --git a/CustomOreNodes/packages.config b/CustomOreNodes/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomOreNodes/packages.config +++ b/CustomOreNodes/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomPaintings/CustomPaintings.csproj b/CustomPaintings/CustomPaintings.csproj index be5d3ba1..1f14153b 100644 --- a/CustomPaintings/CustomPaintings.csproj +++ b/CustomPaintings/CustomPaintings.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomPaintings/packages.config b/CustomPaintings/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomPaintings/packages.config +++ b/CustomPaintings/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomResourceClumps/CustomResourceClumps.csproj b/CustomResourceClumps/CustomResourceClumps.csproj index ea43cda0..9c761be0 100644 --- a/CustomResourceClumps/CustomResourceClumps.csproj +++ b/CustomResourceClumps/CustomResourceClumps.csproj @@ -70,11 +70,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomResourceClumps/packages.config b/CustomResourceClumps/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomResourceClumps/packages.config +++ b/CustomResourceClumps/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomSpousePatio/CustomSpousePatio.csproj b/CustomSpousePatio/CustomSpousePatio.csproj index c0fbedbb..f22b34b5 100644 --- a/CustomSpousePatio/CustomSpousePatio.csproj +++ b/CustomSpousePatio/CustomSpousePatio.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomSpousePatio/packages.config b/CustomSpousePatio/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomSpousePatio/packages.config +++ b/CustomSpousePatio/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomSpousePatioWizard/CustomSpousePatioWizard.csproj b/CustomSpousePatioWizard/CustomSpousePatioWizard.csproj index 0daee65f..f946d3ef 100644 --- a/CustomSpousePatioWizard/CustomSpousePatioWizard.csproj +++ b/CustomSpousePatioWizard/CustomSpousePatioWizard.csproj @@ -62,11 +62,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomSpousePatioWizard/packages.config b/CustomSpousePatioWizard/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomSpousePatioWizard/packages.config +++ b/CustomSpousePatioWizard/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomTextColours/CustomTextColours.csproj b/CustomTextColours/CustomTextColours.csproj index bdd9ff51..65845d01 100644 --- a/CustomTextColours/CustomTextColours.csproj +++ b/CustomTextColours/CustomTextColours.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomTextColours/packages.config b/CustomTextColours/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomTextColours/packages.config +++ b/CustomTextColours/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/CustomWarpPoints/CustomWarpPoints.csproj b/CustomWarpPoints/CustomWarpPoints.csproj index bb8b96d9..6b9ad330 100644 --- a/CustomWarpPoints/CustomWarpPoints.csproj +++ b/CustomWarpPoints/CustomWarpPoints.csproj @@ -57,11 +57,11 @@ - + 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}. - + \ No newline at end of file diff --git a/CustomWarpPoints/packages.config b/CustomWarpPoints/packages.config index 3727d0d6..7e47d9af 100644 --- a/CustomWarpPoints/packages.config +++ b/CustomWarpPoints/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/DialogueTrees/DialogueTrees.csproj b/DialogueTrees/DialogueTrees.csproj index f4744edd..9ca55429 100644 --- a/DialogueTrees/DialogueTrees.csproj +++ b/DialogueTrees/DialogueTrees.csproj @@ -62,11 +62,11 @@ - + 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}. - + \ No newline at end of file diff --git a/DialogueTrees/packages.config b/DialogueTrees/packages.config index 3727d0d6..7e47d9af 100644 --- a/DialogueTrees/packages.config +++ b/DialogueTrees/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ExpertSitting/ExpertSitting.csproj b/ExpertSitting/ExpertSitting.csproj index 579fa6b7..cb42a5b1 100644 --- a/ExpertSitting/ExpertSitting.csproj +++ b/ExpertSitting/ExpertSitting.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ExpertSitting/packages.config b/ExpertSitting/packages.config index 3727d0d6..7e47d9af 100644 --- a/ExpertSitting/packages.config +++ b/ExpertSitting/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ExtraMapLayers/ExtraMapLayers.csproj b/ExtraMapLayers/ExtraMapLayers.csproj index ff256b63..42d9c773 100644 --- a/ExtraMapLayers/ExtraMapLayers.csproj +++ b/ExtraMapLayers/ExtraMapLayers.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ExtraMapLayers/packages.config b/ExtraMapLayers/packages.config index 3727d0d6..7e47d9af 100644 --- a/ExtraMapLayers/packages.config +++ b/ExtraMapLayers/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Familiars/Familiars.csproj b/Familiars/Familiars.csproj index b0dd8310..a2336453 100644 --- a/Familiars/Familiars.csproj +++ b/Familiars/Familiars.csproj @@ -89,11 +89,11 @@ - + 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}. - + \ No newline at end of file diff --git a/Familiars/packages.config b/Familiars/packages.config index 3727d0d6..7e47d9af 100644 --- a/Familiars/packages.config +++ b/Familiars/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FarmAnywhere/FarmAnywhere.csproj b/FarmAnywhere/FarmAnywhere.csproj index e0f3c908..6ad97ea2 100644 --- a/FarmAnywhere/FarmAnywhere.csproj +++ b/FarmAnywhere/FarmAnywhere.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FarmAnywhere/packages.config b/FarmAnywhere/packages.config index 3727d0d6..7e47d9af 100644 --- a/FarmAnywhere/packages.config +++ b/FarmAnywhere/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FireBreath/FireBreath.csproj b/FireBreath/FireBreath.csproj index 7ffa06a0..231ac869 100644 --- a/FireBreath/FireBreath.csproj +++ b/FireBreath/FireBreath.csproj @@ -57,11 +57,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FireBreath/packages.config b/FireBreath/packages.config index 3727d0d6..7e47d9af 100644 --- a/FireBreath/packages.config +++ b/FireBreath/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FishingChestsExpanded/FishingChestsExpanded.csproj b/FishingChestsExpanded/FishingChestsExpanded.csproj index b026951d..08dd406c 100644 --- a/FishingChestsExpanded/FishingChestsExpanded.csproj +++ b/FishingChestsExpanded/FishingChestsExpanded.csproj @@ -59,11 +59,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FishingChestsExpanded/packages.config b/FishingChestsExpanded/packages.config index 3727d0d6..7e47d9af 100644 --- a/FishingChestsExpanded/packages.config +++ b/FishingChestsExpanded/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FlowingMineRocks/FlowingMineRocks.csproj b/FlowingMineRocks/FlowingMineRocks.csproj index 65b97249..5c0571ec 100644 --- a/FlowingMineRocks/FlowingMineRocks.csproj +++ b/FlowingMineRocks/FlowingMineRocks.csproj @@ -64,11 +64,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FlowingMineRocks/packages.config b/FlowingMineRocks/packages.config index 3727d0d6..7e47d9af 100644 --- a/FlowingMineRocks/packages.config +++ b/FlowingMineRocks/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FriendlyDivorce/FriendlyDivorce.csproj b/FriendlyDivorce/FriendlyDivorce.csproj index d5c68936..79cd87e4 100644 --- a/FriendlyDivorce/FriendlyDivorce.csproj +++ b/FriendlyDivorce/FriendlyDivorce.csproj @@ -86,11 +86,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FriendlyDivorce/packages.config b/FriendlyDivorce/packages.config index 3727d0d6..7e47d9af 100644 --- a/FriendlyDivorce/packages.config +++ b/FriendlyDivorce/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/FruitTreeShaker/FruitTreeShaker.csproj b/FruitTreeShaker/FruitTreeShaker.csproj index 01c05751..7f9205a2 100644 --- a/FruitTreeShaker/FruitTreeShaker.csproj +++ b/FruitTreeShaker/FruitTreeShaker.csproj @@ -81,11 +81,11 @@ - + 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}. - + \ No newline at end of file diff --git a/FruitTreeShaker/packages.config b/FruitTreeShaker/packages.config index 3727d0d6..7e47d9af 100644 --- a/FruitTreeShaker/packages.config +++ b/FruitTreeShaker/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/GemIsles/GemIsles.csproj b/GemIsles/GemIsles.csproj index f64dc748..55c4e53c 100644 --- a/GemIsles/GemIsles.csproj +++ b/GemIsles/GemIsles.csproj @@ -65,11 +65,11 @@ - + 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}. - + \ No newline at end of file diff --git a/GemIsles/packages.config b/GemIsles/packages.config index 3727d0d6..7e47d9af 100644 --- a/GemIsles/packages.config +++ b/GemIsles/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/HereFishy/HereFishy.csproj b/HereFishy/HereFishy.csproj index 1dd0acce..11f9abea 100644 --- a/HereFishy/HereFishy.csproj +++ b/HereFishy/HereFishy.csproj @@ -63,11 +63,11 @@ - + 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}. - + \ No newline at end of file diff --git a/HereFishy/packages.config b/HereFishy/packages.config index 3727d0d6..7e47d9af 100644 --- a/HereFishy/packages.config +++ b/HereFishy/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/InstantGrowthPowder/InstantGrowthPowder.csproj b/InstantGrowthPowder/InstantGrowthPowder.csproj index b088196b..539081af 100644 --- a/InstantGrowthPowder/InstantGrowthPowder.csproj +++ b/InstantGrowthPowder/InstantGrowthPowder.csproj @@ -65,11 +65,11 @@ - + 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}. - + \ No newline at end of file diff --git a/InstantGrowthPowder/packages.config b/InstantGrowthPowder/packages.config index 3727d0d6..7e47d9af 100644 --- a/InstantGrowthPowder/packages.config +++ b/InstantGrowthPowder/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/LooseAudioFiles/LooseAudioFiles.csproj b/LooseAudioFiles/LooseAudioFiles.csproj index ccb3b308..9159ba56 100644 --- a/LooseAudioFiles/LooseAudioFiles.csproj +++ b/LooseAudioFiles/LooseAudioFiles.csproj @@ -90,11 +90,11 @@ - + 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}. - + \ No newline at end of file diff --git a/LooseAudioFiles/packages.config b/LooseAudioFiles/packages.config index 90266ce1..c49e042c 100644 --- a/LooseAudioFiles/packages.config +++ b/LooseAudioFiles/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/MagnetMod/MagnetMod.csproj b/MagnetMod/MagnetMod.csproj index c375ef9a..ffed2e66 100644 --- a/MagnetMod/MagnetMod.csproj +++ b/MagnetMod/MagnetMod.csproj @@ -98,11 +98,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MagnetMod/packages.config b/MagnetMod/packages.config index 3727d0d6..7e47d9af 100644 --- a/MagnetMod/packages.config +++ b/MagnetMod/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MapEdit/MapEdit.csproj b/MapEdit/MapEdit.csproj index cd27293e..e8fafddb 100644 --- a/MapEdit/MapEdit.csproj +++ b/MapEdit/MapEdit.csproj @@ -68,11 +68,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MapEdit/packages.config b/MapEdit/packages.config index 3727d0d6..7e47d9af 100644 --- a/MapEdit/packages.config +++ b/MapEdit/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MapTeleport/MapTeleport.csproj b/MapTeleport/MapTeleport.csproj index 9f0ffff9..8ea89745 100644 --- a/MapTeleport/MapTeleport.csproj +++ b/MapTeleport/MapTeleport.csproj @@ -1,70 +1,11 @@ - - - + - Debug - AnyCPU - {ECD0BD18-2DA9-4909-963B-1F713B4986A9} - Library - Properties - MapTeleport - MapTeleport - v4.5.2 - 512 - true - - + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - - 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}. - - - \ No newline at end of file diff --git a/MapTeleport/packages.config b/MapTeleport/packages.config index 3727d0d6..7e47d9af 100644 --- a/MapTeleport/packages.config +++ b/MapTeleport/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MobileArcade/MobileArcade.csproj b/MobileArcade/MobileArcade.csproj index 372dc24c..6b6a9037 100644 --- a/MobileArcade/MobileArcade.csproj +++ b/MobileArcade/MobileArcade.csproj @@ -61,11 +61,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobileArcade/packages.config b/MobileArcade/packages.config index 3727d0d6..7e47d9af 100644 --- a/MobileArcade/packages.config +++ b/MobileArcade/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MobileAudioPlayer/MobileAudioPlayer.csproj b/MobileAudioPlayer/MobileAudioPlayer.csproj index 966585f2..abf5dfbc 100644 --- a/MobileAudioPlayer/MobileAudioPlayer.csproj +++ b/MobileAudioPlayer/MobileAudioPlayer.csproj @@ -74,11 +74,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobileAudioPlayer/packages.config b/MobileAudioPlayer/packages.config index 3727d0d6..7e47d9af 100644 --- a/MobileAudioPlayer/packages.config +++ b/MobileAudioPlayer/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MobileCalendar/MobileCalendar.csproj b/MobileCalendar/MobileCalendar.csproj index 953b9caa..57efdfc7 100644 --- a/MobileCalendar/MobileCalendar.csproj +++ b/MobileCalendar/MobileCalendar.csproj @@ -62,11 +62,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobileCalendar/packages.config b/MobileCalendar/packages.config index 3727d0d6..7e47d9af 100644 --- a/MobileCalendar/packages.config +++ b/MobileCalendar/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MobileCatalogues/MobileCatalogues.csproj b/MobileCatalogues/MobileCatalogues.csproj index cb962cf0..adeff586 100644 --- a/MobileCatalogues/MobileCatalogues.csproj +++ b/MobileCatalogues/MobileCatalogues.csproj @@ -76,11 +76,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobileCatalogues/packages.config b/MobileCatalogues/packages.config index 3727d0d6..7e47d9af 100644 --- a/MobileCatalogues/packages.config +++ b/MobileCatalogues/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MobilePhone/MobilePhone.csproj b/MobilePhone/MobilePhone.csproj index e9d527bb..335a895e 100644 --- a/MobilePhone/MobilePhone.csproj +++ b/MobilePhone/MobilePhone.csproj @@ -142,11 +142,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobilePhone/packages.config b/MobilePhone/packages.config index c290becf..5cb93c20 100644 --- a/MobilePhone/packages.config +++ b/MobilePhone/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/MobileTelevision/MobileTelevision.csproj b/MobileTelevision/MobileTelevision.csproj index a24fc016..dd477fbb 100644 --- a/MobileTelevision/MobileTelevision.csproj +++ b/MobileTelevision/MobileTelevision.csproj @@ -63,11 +63,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MobileTelevision/packages.config b/MobileTelevision/packages.config index 3727d0d6..7e47d9af 100644 --- a/MobileTelevision/packages.config +++ b/MobileTelevision/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ModThis/ModThis.csproj b/ModThis/ModThis.csproj index abdc6e2a..aba37488 100644 --- a/ModThis/ModThis.csproj +++ b/ModThis/ModThis.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ModThis/packages.config b/ModThis/packages.config index 3727d0d6..7e47d9af 100644 --- a/ModThis/packages.config +++ b/ModThis/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MoveableMailbox/MoveableMailbox.csproj b/MoveableMailbox/MoveableMailbox.csproj index 8bbd5021..4e027ca4 100644 --- a/MoveableMailbox/MoveableMailbox.csproj +++ b/MoveableMailbox/MoveableMailbox.csproj @@ -70,11 +70,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MoveableMailbox/packages.config b/MoveableMailbox/packages.config index 3727d0d6..7e47d9af 100644 --- a/MoveableMailbox/packages.config +++ b/MoveableMailbox/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MoveablePetBowl/MoveablePetBowl.csproj b/MoveablePetBowl/MoveablePetBowl.csproj index 9c527c9c..1b5d378f 100644 --- a/MoveablePetBowl/MoveablePetBowl.csproj +++ b/MoveablePetBowl/MoveablePetBowl.csproj @@ -102,11 +102,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MoveablePetBowl/packages.config b/MoveablePetBowl/packages.config index 3727d0d6..7e47d9af 100644 --- a/MoveablePetBowl/packages.config +++ b/MoveablePetBowl/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MultiStoryFarmhouse/MultiStoryFarmhouse.csproj b/MultiStoryFarmhouse/MultiStoryFarmhouse.csproj index c81edab0..db598804 100644 --- a/MultiStoryFarmhouse/MultiStoryFarmhouse.csproj +++ b/MultiStoryFarmhouse/MultiStoryFarmhouse.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/MultiStoryFarmhouse/packages.config b/MultiStoryFarmhouse/packages.config index 3727d0d6..7e47d9af 100644 --- a/MultiStoryFarmhouse/packages.config +++ b/MultiStoryFarmhouse/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/MultipleSpouses/Misc.cs b/MultipleSpouses/Misc.cs index 2f7ad532..7ad56707 100644 --- a/MultipleSpouses/Misc.cs +++ b/MultipleSpouses/Misc.cs @@ -259,7 +259,10 @@ public static void PlaceSpousesInFarmhouse(FarmHouse farmHouse) else if(ModEntry.config.BuildAllSpousesRooms && roomSpouses.Contains(j.Name)) { int offset = roomSpouses.IndexOf(j.Name) * 7; - j.setTilePosition((int)spot.X + offset, (int)spot.Y); + if (j.Name == "Sebastian" && Game1.netWorldState.Value.hasWorldStateID("sebastianFrog")) + j.setTilePosition((int)spot.X + offset - 1, (int)spot.Y + 1); + else + j.setTilePosition((int)spot.X + offset, (int)spot.Y); j.faceDirection(ModEntry.myRand.Next(0, 4)); j.setSpouseRoomMarriageDialogue(); Monitor.Log($"{j.Name} loc: {(spot.X + offset)},{spot.Y}"); diff --git a/MultipleSpouses/MultipleSpouses.csproj b/MultipleSpouses/MultipleSpouses.csproj index e8020dfc..8ea89745 100644 --- a/MultipleSpouses/MultipleSpouses.csproj +++ b/MultipleSpouses/MultipleSpouses.csproj @@ -1,126 +1,11 @@ - - - + - Debug - AnyCPU - {D4990B31-2700-490E-9AF4-6D0ACF59FBAA} - Library - Properties - MultipleSpouses - MultipleSpouses - v4.5.2 - 512 - true - - - true + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - pdbonly - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - TRACE - true - pdbonly - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - PreserveNewest - - - - - - PreserveNewest - - - - - - - - - - - - - + - - - - - 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}. - - - \ No newline at end of file diff --git a/MultipleSpouses/packages.config b/MultipleSpouses/packages.config index 3727d0d6..7e47d9af 100644 --- a/MultipleSpouses/packages.config +++ b/MultipleSpouses/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Murdercrows/Murdercrows.csproj b/Murdercrows/Murdercrows.csproj index b87c8319..d866aa4e 100644 --- a/Murdercrows/Murdercrows.csproj +++ b/Murdercrows/Murdercrows.csproj @@ -68,11 +68,11 @@ - + 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}. - + \ No newline at end of file diff --git a/Murdercrows/packages.config b/Murdercrows/packages.config index 3727d0d6..7e47d9af 100644 --- a/Murdercrows/packages.config +++ b/Murdercrows/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/NonRandomPrairieKing/NonRandomPrairieKing.csproj b/NonRandomPrairieKing/NonRandomPrairieKing.csproj index 8da46c55..1bf93998 100644 --- a/NonRandomPrairieKing/NonRandomPrairieKing.csproj +++ b/NonRandomPrairieKing/NonRandomPrairieKing.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/NonRandomPrairieKing/packages.config b/NonRandomPrairieKing/packages.config index 3727d0d6..7e47d9af 100644 --- a/NonRandomPrairieKing/packages.config +++ b/NonRandomPrairieKing/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OutdoorButterflyHutch/OutdoorButterflyHutch.csproj b/OutdoorButterflyHutch/OutdoorButterflyHutch.csproj index 26ecf675..290555de 100644 --- a/OutdoorButterflyHutch/OutdoorButterflyHutch.csproj +++ b/OutdoorButterflyHutch/OutdoorButterflyHutch.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/OutdoorButterflyHutch/packages.config b/OutdoorButterflyHutch/packages.config index 3727d0d6..7e47d9af 100644 --- a/OutdoorButterflyHutch/packages.config +++ b/OutdoorButterflyHutch/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OverworldChests/OverworldChests.csproj b/OverworldChests/OverworldChests.csproj index 43ef45fa..b754b942 100644 --- a/OverworldChests/OverworldChests.csproj +++ b/OverworldChests/OverworldChests.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/OverworldChests/packages.config b/OverworldChests/packages.config index 3727d0d6..7e47d9af 100644 --- a/OverworldChests/packages.config +++ b/OverworldChests/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/PacifistValley/PacifistValley.csproj b/PacifistValley/PacifistValley.csproj index 7fecb64d..6a2fafdb 100644 --- a/PacifistValley/PacifistValley.csproj +++ b/PacifistValley/PacifistValley.csproj @@ -121,11 +121,11 @@ - + 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}. - + \ No newline at end of file diff --git a/PacifistValley/packages.config b/PacifistValley/packages.config index 3727d0d6..7e47d9af 100644 --- a/PacifistValley/packages.config +++ b/PacifistValley/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ParrotPerch/ParrotPerch.csproj b/ParrotPerch/ParrotPerch.csproj index d6917285..5e3b5fac 100644 --- a/ParrotPerch/ParrotPerch.csproj +++ b/ParrotPerch/ParrotPerch.csproj @@ -84,11 +84,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ParrotPerch/packages.config b/ParrotPerch/packages.config index 3727d0d6..7e47d9af 100644 --- a/ParrotPerch/packages.config +++ b/ParrotPerch/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/PersisitentGrangeDisplay/PersisitentGrangeDisplay.csproj b/PersisitentGrangeDisplay/PersisitentGrangeDisplay.csproj index 39652317..04d854b8 100644 --- a/PersisitentGrangeDisplay/PersisitentGrangeDisplay.csproj +++ b/PersisitentGrangeDisplay/PersisitentGrangeDisplay.csproj @@ -61,11 +61,11 @@ - + 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}. - + \ No newline at end of file diff --git a/PersisitentGrangeDisplay/packages.config b/PersisitentGrangeDisplay/packages.config index 3727d0d6..7e47d9af 100644 --- a/PersisitentGrangeDisplay/packages.config +++ b/PersisitentGrangeDisplay/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/PlaceShaft/PlaceShaft.csproj b/PlaceShaft/PlaceShaft.csproj index c07c04b5..1a0d0b07 100644 --- a/PlaceShaft/PlaceShaft.csproj +++ b/PlaceShaft/PlaceShaft.csproj @@ -103,11 +103,11 @@ - + 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}. - + \ No newline at end of file diff --git a/PlaceShaft/packages.config b/PlaceShaft/packages.config index 3727d0d6..7e47d9af 100644 --- a/PlaceShaft/packages.config +++ b/PlaceShaft/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/ProceduralDungeons/ProceduralDungeons.csproj b/ProceduralDungeons/ProceduralDungeons.csproj index c31bebf2..51e69d18 100644 --- a/ProceduralDungeons/ProceduralDungeons.csproj +++ b/ProceduralDungeons/ProceduralDungeons.csproj @@ -78,11 +78,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ProceduralDungeons/packages.config b/ProceduralDungeons/packages.config index c060e127..7e47d9af 100644 --- a/ProceduralDungeons/packages.config +++ b/ProceduralDungeons/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/QuickLoad/QuickLoad.csproj b/QuickLoad/QuickLoad.csproj index 083c0166..7d8436ce 100644 --- a/QuickLoad/QuickLoad.csproj +++ b/QuickLoad/QuickLoad.csproj @@ -57,11 +57,11 @@ - + 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}. - + \ No newline at end of file diff --git a/QuickLoad/packages.config b/QuickLoad/packages.config index 3727d0d6..7e47d9af 100644 --- a/QuickLoad/packages.config +++ b/QuickLoad/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/QuickResponses/QuickResponses.csproj b/QuickResponses/QuickResponses.csproj index daa0dda3..19c08390 100644 --- a/QuickResponses/QuickResponses.csproj +++ b/QuickResponses/QuickResponses.csproj @@ -57,11 +57,11 @@ - + 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}. - + \ No newline at end of file diff --git a/QuickResponses/packages.config b/QuickResponses/packages.config index 3727d0d6..7e47d9af 100644 --- a/QuickResponses/packages.config +++ b/QuickResponses/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Quotes/Quotes.csproj b/Quotes/Quotes.csproj index 440180c1..55bd299d 100644 --- a/Quotes/Quotes.csproj +++ b/Quotes/Quotes.csproj @@ -64,11 +64,11 @@ - + 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}. - + \ No newline at end of file diff --git a/Quotes/packages.config b/Quotes/packages.config index 3727d0d6..7e47d9af 100644 --- a/Quotes/packages.config +++ b/Quotes/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/RandomNPC/RandomNPC.csproj b/RandomNPC/RandomNPC.csproj index a3a8470e..3b4e05ab 100644 --- a/RandomNPC/RandomNPC.csproj +++ b/RandomNPC/RandomNPC.csproj @@ -383,11 +383,11 @@ - + 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}. - + \ No newline at end of file diff --git a/RandomNPC/packages.config b/RandomNPC/packages.config index 3727d0d6..7e47d9af 100644 --- a/RandomNPC/packages.config +++ b/RandomNPC/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/RealNames/RealNames.csproj b/RealNames/RealNames.csproj index 1e2d5003..b46f4a37 100644 --- a/RealNames/RealNames.csproj +++ b/RealNames/RealNames.csproj @@ -72,11 +72,11 @@ - + 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}. - + \ No newline at end of file diff --git a/RealNames/packages.config b/RealNames/packages.config index 3727d0d6..7e47d9af 100644 --- a/RealNames/packages.config +++ b/RealNames/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Renovations/Renovations.csproj b/Renovations/Renovations.csproj index c08ff765..b5057f3b 100644 --- a/Renovations/Renovations.csproj +++ b/Renovations/Renovations.csproj @@ -35,18 +35,70 @@ - + + ..\packages\Microsoft.Build.Framework.16.10.0\lib\net472\Microsoft.Build.Framework.dll + + + ..\packages\Microsoft.Build.Utilities.Core.16.10.0\lib\net472\Microsoft.Build.Utilities.Core.dll + + + ..\packages\Microsoft.NET.StringTools.1.0.0\lib\net472\Microsoft.NET.StringTools.dll + + + ..\packages\Microsoft.VisualStudio.Setup.Configuration.Interop.1.16.30\lib\net35\Microsoft.VisualStudio.Setup.Configuration.Interop.dll + True + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll + + + + ..\packages\System.Configuration.ConfigurationManager.4.7.0\lib\net461\System.Configuration.ConfigurationManager.dll + + + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll + + + + ..\packages\System.Security.AccessControl.4.7.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.Permissions.4.7.0\lib\net461\System.Security.Permissions.dll + + + ..\packages\System.Security.Principal.Windows.4.7.0\lib\net461\System.Security.Principal.Windows.dll + + + + + @@ -56,15 +108,16 @@ + - + 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}. - + \ No newline at end of file diff --git a/Renovations/app.config b/Renovations/app.config new file mode 100644 index 00000000..f10b4ac0 --- /dev/null +++ b/Renovations/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Renovations/packages.config b/Renovations/packages.config index e0dffd70..135be62c 100644 --- a/Renovations/packages.config +++ b/Renovations/packages.config @@ -1,4 +1,18 @@  - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ShowPlayerBehind/ShowPlayerBehind.csproj b/ShowPlayerBehind/ShowPlayerBehind.csproj index aa68927e..55262421 100644 --- a/ShowPlayerBehind/ShowPlayerBehind.csproj +++ b/ShowPlayerBehind/ShowPlayerBehind.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ShowPlayerBehind/packages.config b/ShowPlayerBehind/packages.config index 3727d0d6..7e47d9af 100644 --- a/ShowPlayerBehind/packages.config +++ b/ShowPlayerBehind/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/SixtyNine/SixtyNine.csproj b/SixtyNine/SixtyNine.csproj index 7900bffd..147a3ae5 100644 --- a/SixtyNine/SixtyNine.csproj +++ b/SixtyNine/SixtyNine.csproj @@ -66,11 +66,11 @@ - + 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}. - + \ No newline at end of file diff --git a/SixtyNine/packages.config b/SixtyNine/packages.config index 3727d0d6..7e47d9af 100644 --- a/SixtyNine/packages.config +++ b/SixtyNine/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/SocialNetwork/SocialNetwork.csproj b/SocialNetwork/SocialNetwork.csproj index 2f26b927..944f6af4 100644 --- a/SocialNetwork/SocialNetwork.csproj +++ b/SocialNetwork/SocialNetwork.csproj @@ -67,11 +67,11 @@ - + 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}. - + \ No newline at end of file diff --git a/SocialNetwork/packages.config b/SocialNetwork/packages.config index c060e127..7e47d9af 100644 --- a/SocialNetwork/packages.config +++ b/SocialNetwork/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/SocialPageOrderButton/SocialPageOrderButton.csproj b/SocialPageOrderButton/SocialPageOrderButton.csproj index 0d4d4bed..231574f9 100644 --- a/SocialPageOrderButton/SocialPageOrderButton.csproj +++ b/SocialPageOrderButton/SocialPageOrderButton.csproj @@ -63,11 +63,11 @@ - + 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}. - + \ No newline at end of file diff --git a/SocialPageOrderButton/packages.config b/SocialPageOrderButton/packages.config index 3727d0d6..7e47d9af 100644 --- a/SocialPageOrderButton/packages.config +++ b/SocialPageOrderButton/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Swim/AbigailProjectile.cs b/Swim/AbigailProjectile.cs index ecc71852..6e6ea96c 100644 --- a/Swim/AbigailProjectile.cs +++ b/Swim/AbigailProjectile.cs @@ -12,7 +12,7 @@ public class AbigailProjectile : BasicProjectile private string myCollisionSound; private bool myExplode; - public AbigailProjectile(int damageToFarmer, int parentSheetIndex, int bouncesTillDestruct, int tailLength, float rotationVelocity, float xVelocity, float yVelocity, Vector2 startingPosition, string collisionSound, string firingSound, bool explode, bool damagesMonsters = false, GameLocation location = null, Character firer = null, bool spriteFromObjectSheet = false, BasicProjectile.onCollisionBehavior collisionBehavior = null) : base(damageToFarmer, parentSheetIndex, bouncesTillDestruct, tailLength, rotationVelocity, xVelocity, yVelocity, startingPosition, collisionSound, firingSound, explode, true, location, firer, true, null) + public AbigailProjectile(int damageToFarmer, int ParentSheetIndex, int bouncesTillDestruct, int tailLength, float rotationVelocity, float xVelocity, float yVelocity, Vector2 startingPosition, string collisionSound, string firingSound, bool explode, bool damagesMonsters = false, GameLocation location = null, Character firer = null, bool spriteFromObjectSheet = false, BasicProjectile.onCollisionBehavior collisionBehavior = null) : base(damageToFarmer, ParentSheetIndex, bouncesTillDestruct, tailLength, rotationVelocity, xVelocity, yVelocity, startingPosition, collisionSound, firingSound, explode, true, location, firer, true, null) { IgnoreLocationCollision = true; myCollisionSound = collisionSound; @@ -21,7 +21,7 @@ public AbigailProjectile(int damageToFarmer, int parentSheetIndex, int bouncesTi public override void behaviorOnCollisionWithMonster(NPC n, GameLocation location) { - this.explosionAnimation(location); + explosionAnimation(location); if (n is Monster) { location.characters.Remove(n); @@ -30,13 +30,13 @@ public override void behaviorOnCollisionWithMonster(NPC n, GameLocation location } private void explosionAnimation(GameLocation location) { - Rectangle sourceRect = Game1.getSourceRectForStandardTileSheet(this.spriteFromObjectSheet ? Game1.objectSpriteSheet : Projectile.projectileSheet, this.currentTileSheetIndex, -1, -1); + Rectangle sourceRect = Game1.getSourceRectForStandardTileSheet(spriteFromObjectSheet.Value ? Game1.objectSpriteSheet : Projectile.projectileSheet, currentTileSheetIndex.Value, -1, -1); sourceRect.X += 28; sourceRect.Y += 28; sourceRect.Width = 8; sourceRect.Height = 8; int whichDebris = 12; - int value = this.currentTileSheetIndex.Value; + int value = currentTileSheetIndex.Value; switch (value) { case 378: @@ -66,17 +66,17 @@ private void explosionAnimation(GameLocation location) } break; } - if (this.spriteFromObjectSheet) + if (spriteFromObjectSheet.Value) { - Game1.createRadialDebris(location, whichDebris, (int)(this.position.X + 32f) / 64, (int)(this.position.Y + 32f) / 64, 6, false, -1, false, -1); + Game1.createRadialDebris(location, whichDebris, (int)(position.X + 32f) / 64, (int)(position.Y + 32f) / 64, 6, false, -1, false, -1); } else { - Game1.createRadialDebris(location, "TileSheets\\Projectiles", sourceRect, 4, (int)this.position.X + 32, (int)this.position.Y + 32, 12, (int)(this.position.Y / 64f) + 1); + Game1.createRadialDebris(location, "TileSheets\\Projectiles", sourceRect, 4, (int)position.X + 32, (int)position.Y + 32, 12, (int)(position.Y / 64f) + 1); } - if (myCollisionSound != null && !this.myCollisionSound.Equals("")) + if (myCollisionSound != null && !myCollisionSound.Equals("")) { - location.playSound(this.myCollisionSound, NetAudio.SoundContext.Default); + location.playSound(myCollisionSound, NetAudio.SoundContext.Default); } destroyMe = true; diff --git a/Swim/BigFishie.cs b/Swim/BigFishie.cs index d6779d23..f75ab4ed 100644 --- a/Swim/BigFishie.cs +++ b/Swim/BigFishie.cs @@ -41,30 +41,30 @@ public override void drawAboveAllLayers(SpriteBatch b) public override void behaviorAtGameTick(GameTime time) { base.IsWalkingTowardPlayer = false; - this.nextChangeDirectionTime -= time.ElapsedGameTime.Milliseconds; - this.nextWanderTime -= time.ElapsedGameTime.Milliseconds; - if (this.nextChangeDirectionTime < 0) + nextChangeDirectionTime -= time.ElapsedGameTime.Milliseconds; + nextWanderTime -= time.ElapsedGameTime.Milliseconds; + if (nextChangeDirectionTime < 0) { - this.nextChangeDirectionTime = Game1.random.Next(500, 1000); + nextChangeDirectionTime = Game1.random.Next(500, 1000); int facingDirection = base.FacingDirection; this.facingDirection.Value = (this.facingDirection.Value + (Game1.random.Next(0, 3) - 1) + 4) % 4; } - if (this.nextWanderTime < 0) + if (nextWanderTime < 0) { - if (this.wanderState) + if (wanderState) { - this.nextWanderTime = Game1.random.Next(1000, 2000); + nextWanderTime = Game1.random.Next(1000, 2000); } else { - this.nextWanderTime = Game1.random.Next(1000, 3000); + nextWanderTime = Game1.random.Next(1000, 3000); } - this.wanderState = !this.wanderState; + wanderState = !wanderState; } - if (this.wanderState) + if (wanderState) { - this.moveLeft = (this.moveUp = (this.moveRight = (this.moveDown = false))); - base.tryToMoveInDirection(this.facingDirection.Value, false, base.DamageToFarmer, this.isGlider); + moveLeft = (moveUp = (moveRight = (moveDown = false))); + base.tryToMoveInDirection(facingDirection.Value, false, base.DamageToFarmer, isGlider.Value); } } } diff --git a/Swim/Fishie.cs b/Swim/Fishie.cs index d2109433..1708352a 100644 --- a/Swim/Fishie.cs +++ b/Swim/Fishie.cs @@ -36,66 +36,66 @@ public override void drawAboveAllLayers(SpriteBatch b) invincibleCountdown = 1000; if (Utility.isOnScreen(base.Position, 128)) { - b.Draw(Game1.shadowTexture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)this.GetBoundingBox().Height), new Rectangle?(Game1.shadowTexture.Bounds), Color.White, 0f, new Vector2((float)Game1.shadowTexture.Bounds.Center.X, (float)Game1.shadowTexture.Bounds.Center.Y), 3f, SpriteEffects.None, (float)(base.getStandingY() - 1) / 10000f); - b.Draw(this.Sprite.Texture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)(this.GetBoundingBox().Height / 2)), new Rectangle?(this.Sprite.SourceRect), Color.White, this.rotation, new Vector2(16f, 16f), Math.Max(0.2f, this.scale) * 4f, this.flip ? SpriteEffects.FlipHorizontally : SpriteEffects.None, Math.Max(0f, this.drawOnTop ? 0.991f : ((float)(base.getStandingY() + 8) / 10000f))); - if (this.isGlowing) + b.Draw(Game1.shadowTexture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)GetBoundingBox().Height), new Rectangle?(Game1.shadowTexture.Bounds), Color.White, 0f, new Vector2((float)Game1.shadowTexture.Bounds.Center.X, (float)Game1.shadowTexture.Bounds.Center.Y), 3f, SpriteEffects.None, (float)(base.getStandingY() - 1) / 10000f); + b.Draw(Sprite.Texture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)(GetBoundingBox().Height / 2)), new Rectangle?(Sprite.SourceRect), Color.White, rotation, new Vector2(16f, 16f), Math.Max(0.2f, scale.Value) * 4f, flip ? SpriteEffects.FlipHorizontally : SpriteEffects.None, Math.Max(0f, drawOnTop ? 0.991f : ((float)(base.getStandingY() + 8) / 10000f))); + if (isGlowing) { - b.Draw(this.Sprite.Texture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)(this.GetBoundingBox().Height / 2)), new Rectangle?(this.Sprite.SourceRect), this.glowingColor * this.glowingTransparency, this.rotation, new Vector2(16f, 16f), Math.Max(0.2f, this.scale) * 4f, this.flip ? SpriteEffects.FlipHorizontally : SpriteEffects.None, Math.Max(0f, this.drawOnTop ? 0.991f : ((float)(base.getStandingY() + 8) / 10000f + 0.0001f))); + b.Draw(Sprite.Texture, base.getLocalPosition(Game1.viewport) + new Vector2(64f, (float)(GetBoundingBox().Height / 2)), new Rectangle?(Sprite.SourceRect), glowingColor * glowingTransparency, rotation, new Vector2(16f, 16f), Math.Max(0.2f, scale.Value) * 4f, flip ? SpriteEffects.FlipHorizontally : SpriteEffects.None, Math.Max(0f, drawOnTop ? 0.991f : ((float)(base.getStandingY() + 8) / 10000f + 0.0001f))); } } } protected override void updateAnimation(GameTime time) { base.updateAnimation(time); - if (this.wasHitCounter >= 0) + if (wasHitCounter >= 0) { - this.wasHitCounter -= time.ElapsedGameTime.Milliseconds; + wasHitCounter -= time.ElapsedGameTime.Milliseconds; } - this.Sprite.Animate(time, 0, 9, 40f); - float xSlope = (float)(-(float)(base.Player.GetBoundingBox().Center.X - this.GetBoundingBox().Center.X)); - float ySlope = (float)(base.Player.GetBoundingBox().Center.Y - this.GetBoundingBox().Center.Y); + Sprite.Animate(time, 0, 9, 40f); + float xSlope = (float)(-(float)(base.Player.GetBoundingBox().Center.X - GetBoundingBox().Center.X)); + float ySlope = (float)(base.Player.GetBoundingBox().Center.Y - GetBoundingBox().Center.Y); float t = Math.Max(1f, Math.Abs(xSlope) + Math.Abs(ySlope)); if (t < 64f) { - this.xVelocity = Math.Max(-7f, Math.Min(7f, this.xVelocity * 1.1f)); - this.yVelocity = Math.Max(-7f, Math.Min(7f, this.yVelocity * 1.1f)); + xVelocity = Math.Max(-7f, Math.Min(7f, xVelocity * 1.1f)); + yVelocity = Math.Max(-7f, Math.Min(7f, yVelocity * 1.1f)); } xSlope /= t; ySlope /= t; - if (this.wasHitCounter <= 0) + if (wasHitCounter <= 0) { - this.targetRotation = (float)Math.Atan2((double)(-(double)ySlope), (double)xSlope) - 1.57079637f; - if ((double)(Math.Abs(this.targetRotation) - Math.Abs(this.rotation)) > 2.748893571891069 && Game1.random.NextDouble() < 0.5) + targetRotation = (float)Math.Atan2((double)(-(double)ySlope), (double)xSlope) - 1.57079637f; + if ((double)(Math.Abs(targetRotation) - Math.Abs(rotation)) > 2.748893571891069 && Game1.random.NextDouble() < 0.5) { - this.turningRight = true; + turningRight = true; } - else if ((double)(Math.Abs(this.targetRotation) - Math.Abs(this.rotation)) < 0.39269908169872414) + else if ((double)(Math.Abs(targetRotation) - Math.Abs(rotation)) < 0.39269908169872414) { - this.turningRight = false; + turningRight = false; } - if (this.turningRight) + if (turningRight) { - this.rotation -= (float)Math.Sign(this.targetRotation - this.rotation) * 0.0490873866f; + rotation -= (float)Math.Sign(targetRotation - rotation) * 0.0490873866f; } else { - this.rotation += (float)Math.Sign(this.targetRotation - this.rotation) * 0.0490873866f; + rotation += (float)Math.Sign(targetRotation - rotation) * 0.0490873866f; } - this.rotation %= 6.28318548f; - this.wasHitCounter = 5 + Game1.random.Next(-1, 2); + rotation %= 6.28318548f; + wasHitCounter = 5 + Game1.random.Next(-1, 2); } float maxAccel = Math.Min(7f, Math.Max(2f, 7f - t / 64f / 2f)); - xSlope = (float)Math.Cos((double)this.rotation + 1.5707963267948966); - ySlope = -(float)Math.Sin((double)this.rotation + 1.5707963267948966); - this.xVelocity += -xSlope * maxAccel / 6f + (float)Game1.random.Next(-10, 10) / 100f; - this.yVelocity += -ySlope * maxAccel / 6f + (float)Game1.random.Next(-10, 10) / 100f; - if (Math.Abs(this.xVelocity) > Math.Abs(-xSlope * 7f)) + xSlope = (float)Math.Cos((double)rotation + 1.5707963267948966); + ySlope = -(float)Math.Sin((double)rotation + 1.5707963267948966); + xVelocity += -xSlope * maxAccel / 6f + (float)Game1.random.Next(-10, 10) / 100f; + yVelocity += -ySlope * maxAccel / 6f + (float)Game1.random.Next(-10, 10) / 100f; + if (Math.Abs(xVelocity) > Math.Abs(-xSlope * 7f)) { - this.xVelocity -= -xSlope * maxAccel / 6f; + xVelocity -= -xSlope * maxAccel / 6f; } - if (Math.Abs(this.yVelocity) > Math.Abs(-ySlope * 7f)) + if (Math.Abs(yVelocity) > Math.Abs(-ySlope * 7f)) { - this.yVelocity -= -ySlope * maxAccel / 6f; + yVelocity -= -ySlope * maxAccel / 6f; } base.resetAnimationSpeed(); } diff --git a/Swim/SeaCrab.cs b/Swim/SeaCrab.cs index f182f85a..955872a7 100644 --- a/Swim/SeaCrab.cs +++ b/Swim/SeaCrab.cs @@ -32,12 +32,12 @@ public SeaCrab(Vector2 position) : base(position) protected override void initNetFields() { base.initNetFields(); - base.NetFields.AddFields(new INetSerializable[] + NetFields.AddFields(new INetSerializable[] { - this.shellGone, - this.shellHealth, + shellGone, + shellHealth, }); - this.position.Field.AxisAlignedMovement = true; + position.Field.AxisAlignedMovement = true; } public override int takeDamage(int damage, int xTrajectory, int yTrajectory, bool isBomb, double addedPrecision, Farmer who) @@ -46,21 +46,21 @@ public override int takeDamage(int damage, int xTrajectory, int yTrajectory, boo } public override bool hitWithTool(Tool t) { - if (t is Pickaxe && t.getLastFarmerToUse() != null && this.shellHealth > 0) + if (t is Pickaxe && t.getLastFarmerToUse() != null && shellHealth.Value > 0) { - base.currentLocation.playSound("hammer", NetAudio.SoundContext.Default); - NetInt netInt = this.shellHealth; + currentLocation.playSound("hammer", NetAudio.SoundContext.Default); + NetInt netInt = shellHealth; int value = netInt.Value; netInt.Value = value - 1; - base.shake(500); - this.setTrajectory(Utility.getAwayFromPlayerTrajectory(this.GetBoundingBox(), t.getLastFarmerToUse())); - if (this.shellHealth <= 0) + shake(500); + setTrajectory(Utility.getAwayFromPlayerTrajectory(GetBoundingBox(), t.getLastFarmerToUse())); + if (shellHealth.Value <= 0) { - this.shellGone.Value = true; - base.moveTowardPlayer(-1); - base.currentLocation.playSound("stoneCrack", NetAudio.SoundContext.Default); - Game1.createRadialDebris(base.currentLocation, 14, base.getTileX(), base.getTileY(), Game1.random.Next(2, 7), false, -1, false, -1); - Game1.createRadialDebris(base.currentLocation, 14, base.getTileX(), base.getTileY(), Game1.random.Next(2, 7), false, -1, false, -1); + shellGone.Value = true; + moveTowardPlayer(-1); + currentLocation.playSound("stoneCrack", NetAudio.SoundContext.Default); + Game1.createRadialDebris(currentLocation, 14, getTileX(), getTileY(), Game1.random.Next(2, 7), false, -1, false, -1); + Game1.createRadialDebris(currentLocation, 14, getTileX(), getTileY(), Game1.random.Next(2, 7), false, -1, false, -1); } return true; } @@ -70,28 +70,28 @@ public override void behaviorAtGameTick(GameTime time) { if (shellGone) { - Sprite.CurrentFrame = 16 + this.Sprite.currentFrame % 4; + Sprite.CurrentFrame = 16 + Sprite.currentFrame % 4; } if (withinPlayerThreshold()) { - if (Math.Abs(base.Player.GetBoundingBox().Center.Y - this.GetBoundingBox().Center.Y) < Math.Abs(base.Player.GetBoundingBox().Center.X - this.GetBoundingBox().Center.X)) + if (Math.Abs(Player.GetBoundingBox().Center.Y - GetBoundingBox().Center.Y) < Math.Abs(Player.GetBoundingBox().Center.X - GetBoundingBox().Center.X)) { - if (base.Player.GetBoundingBox().Center.X - this.GetBoundingBox().Center.X > 0 && getTileLocationPoint().X > 0) + if (Player.GetBoundingBox().Center.X - GetBoundingBox().Center.X > 0 && getTileLocationPoint().X > 0) { - this.SetMovingLeft(true); + SetMovingLeft(true); } - else if (base.Player.GetBoundingBox().Center.X - this.GetBoundingBox().Center.X < 0 && getTileLocationPoint().X < currentLocation.map.Layers[0].TileWidth) + else if (Player.GetBoundingBox().Center.X - GetBoundingBox().Center.X < 0 && getTileLocationPoint().X < currentLocation.map.Layers[0].TileWidth) { - this.SetMovingRight(true); + SetMovingRight(true); } } - else if (base.Player.GetBoundingBox().Center.Y - this.GetBoundingBox().Center.Y > 0 && getTileLocationPoint().Y > 0) + else if (Player.GetBoundingBox().Center.Y - GetBoundingBox().Center.Y > 0 && getTileLocationPoint().Y > 0) { - this.SetMovingUp(true); + SetMovingUp(true); } - else if (base.Player.GetBoundingBox().Center.Y - this.GetBoundingBox().Center.Y < 0 && getTileLocationPoint().Y < currentLocation.map.Layers[0].TileHeight) + else if (Player.GetBoundingBox().Center.Y - GetBoundingBox().Center.Y < 0 && getTileLocationPoint().Y < currentLocation.map.Layers[0].TileHeight) { - this.SetMovingDown(true); + SetMovingDown(true); } MovePosition(time, Game1.viewport, currentLocation); } @@ -103,47 +103,47 @@ public override void behaviorAtGameTick(GameTime time) protected override void updateMonsterSlaveAnimation(GameTime time) { - if (this.isMoving()) + if (isMoving()) { if (base.FacingDirection == 0) { - this.Sprite.AnimateUp(time, 0, ""); + Sprite.AnimateUp(time, 0, ""); } else if (base.FacingDirection == 3) { - this.Sprite.AnimateLeft(time, 0, ""); + Sprite.AnimateLeft(time, 0, ""); } else if (base.FacingDirection == 1) { - this.Sprite.AnimateRight(time, 0, ""); + Sprite.AnimateRight(time, 0, ""); } else if (base.FacingDirection == 2) { - this.Sprite.AnimateDown(time, 0, ""); + Sprite.AnimateDown(time, 0, ""); } } else { - this.Sprite.StopAnimation(); + Sprite.StopAnimation(); } - if (this.isMoving() && this.Sprite.currentFrame % 4 == 0) + if (isMoving() && Sprite.currentFrame % 4 == 0) { - this.Sprite.currentFrame++; - this.Sprite.UpdateSourceRect(); + Sprite.currentFrame++; + Sprite.UpdateSourceRect(); } - if (this.shellGone) + if (shellGone.Value) { - base.updateGlow(); - if (this.invincibleCountdown > 0) + updateGlow(); + if (invincibleCountdown > 0) { - this.glowingColor = Color.Cyan; - this.invincibleCountdown -= time.ElapsedGameTime.Milliseconds; - if (this.invincibleCountdown <= 0) + glowingColor = Color.Cyan; + invincibleCountdown -= time.ElapsedGameTime.Milliseconds; + if (invincibleCountdown <= 0) { - base.stopGlowing(); + stopGlowing(); } } - this.Sprite.currentFrame = 16 + this.Sprite.currentFrame % 4; + Sprite.currentFrame = 16 + Sprite.currentFrame % 4; } } } diff --git a/Swim/Swim.csproj b/Swim/Swim.csproj index f9011796..8ea89745 100644 --- a/Swim/Swim.csproj +++ b/Swim/Swim.csproj @@ -1,126 +1,11 @@ - - - + - Debug - AnyCPU - {D06D6A79-D6AA-45E4-9E39-9D150F8A5365} - Library - Properties - Swim - Swim - v4.5.2 - 512 - true - - - true + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\Lib.Harmony.2.1.1\lib\net45\0Harmony.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - 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}. - - - \ No newline at end of file diff --git a/Swim/SwimHelperEvents.cs b/Swim/SwimHelperEvents.cs index 3618d3f0..f10ff780 100644 --- a/Swim/SwimHelperEvents.cs +++ b/Swim/SwimHelperEvents.cs @@ -76,12 +76,12 @@ public static void Player_Warped(object sender, WarpedEventArgs e) Game1.player.changeOutOfSwimSuit(); - if(Game1.player.hat.Value != null && Game1.player.hat.Value.parentSheetIndex != 0) + if(Game1.player.hat.Value != null && Game1.player.hat.Value.ParentSheetIndex != 0) Game1.player.addItemToInventory(Game1.player.hat.Value); Game1.player.hat.Value = new Hat(0); Game1.player.doEmote(9); } - if (Game1.player.swimming) + if (Game1.player.swimming.Value) { //SwimMaps.SwitchToWaterTiles(e.NewLocation); } @@ -92,17 +92,17 @@ public static void Player_InventoryChanged(object sender, InventoryChangedEventA if (e.Player != Game1.player) return; - if (!Game1.player.mailReceived.Contains("ScubaTank") && ModEntry.scubaTankID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().parentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Clothing) && e.Added.FirstOrDefault().parentSheetIndex == ModEntry.scubaTankID.Value) + if (!Game1.player.mailReceived.Contains("ScubaTank") && ModEntry.scubaTankID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().ParentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Clothing) && e.Added.FirstOrDefault().ParentSheetIndex == ModEntry.scubaTankID.Value) { Monitor.Log("Player found scuba tank"); Game1.player.mailReceived.Add("ScubaTank"); } - if (!Game1.player.mailReceived.Contains("ScubaMask") && ModEntry.scubaMaskID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().parentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Hat) && (e.Added.FirstOrDefault() as Hat).which == ModEntry.scubaMaskID.Value) + if (!Game1.player.mailReceived.Contains("ScubaMask") && ModEntry.scubaMaskID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().ParentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Hat) && (e.Added.FirstOrDefault() as Hat).which.Value == ModEntry.scubaMaskID.Value) { Monitor.Log("Player found scuba mask"); Game1.player.mailReceived.Add("ScubaMask"); } - if (!Game1.player.mailReceived.Contains("ScubaFins") && ModEntry.scubaFinsID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().parentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Boots) && e.Added.FirstOrDefault().parentSheetIndex == ModEntry.scubaFinsID.Value) + if (!Game1.player.mailReceived.Contains("ScubaFins") && ModEntry.scubaFinsID.Value != -1 && e.Added != null && e.Added.Count() > 0 && e.Added.FirstOrDefault() != null && e.Added.FirstOrDefault().ParentSheetIndex != null && e.Added.FirstOrDefault().GetType() == typeof(Boots) && e.Added.FirstOrDefault().ParentSheetIndex == ModEntry.scubaFinsID.Value) { Monitor.Log("Player found scuba fins"); Game1.player.mailReceived.Add("ScubaFins"); @@ -146,7 +146,7 @@ public static void GameLoop_SaveLoaded(object sender, SaveLoadedEventArgs e) if (ModEntry.scubaFinsID.Value != -1) { Monitor.Log(string.Format("Swim mod item #3 ID is {0}.", ModEntry.scubaFinsID.Value)); - if(Game1.player.boots != null && Game1.player.boots.Value != null && Game1.player.boots.Value.Name == "Scuba Fins" && Game1.player.boots.Value.parentSheetIndex != ModEntry.scubaFinsID.Value) + if(Game1.player.boots.Value != null && Game1.player.boots.Value != null && Game1.player.boots.Value.Name == "Scuba Fins" && Game1.player.boots.Value.ParentSheetIndex != ModEntry.scubaFinsID.Value) { Game1.player.boots.Value = new Boots(ModEntry.scubaFinsID.Value); } @@ -465,7 +465,7 @@ public static void Input_ButtonPressed(object sender, ButtonPressedEventArgs e) return; } - if (e.Button == Config.SwimKey && Game1.activeClickableMenu == null && (!Game1.player.swimming || !Config.ReadyToSwim) && !isJumping.Value) + if (e.Button == Config.SwimKey && Game1.activeClickableMenu == null && (!Game1.player.swimming.Value || !Config.ReadyToSwim) && !isJumping.Value) { Config.ReadyToSwim = !Config.ReadyToSwim; Helper.WriteConfig(Config); @@ -477,7 +477,7 @@ public static void Input_ButtonPressed(object sender, ButtonPressedEventArgs e) { Config.SwimSuitAlways = !Config.SwimSuitAlways; Helper.WriteConfig(Config); - if (!Game1.player.swimming) + if (!Game1.player.swimming.Value) { if(!Config.SwimSuitAlways) Game1.player.changeOutOfSwimSuit(); @@ -587,7 +587,7 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) return; } - if (Game1.player.swimming) { + if (Game1.player.swimming.Value) { if (!SwimUtils.IsInWater() && !isJumping.Value) { Monitor.Log("Swimming out of water"); @@ -600,7 +600,7 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) endJumpLoc.Value = Game1.player.position.Value; Game1.player.swimming.Value = false; - if (Game1.player.bathingClothes && !Config.SwimSuitAlways) + if (Game1.player.bathingClothes.Value && !Config.SwimSuitAlways) Game1.player.changeOutOfSwimSuit(); } @@ -701,12 +701,12 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) } } - if (Game1.player.bathingClothes && SwimUtils.IsWearingScubaGear() && !Config.SwimSuitAlways) + if (Game1.player.bathingClothes.Value && SwimUtils.IsWearingScubaGear() && !Config.SwimSuitAlways) Game1.player.changeOutOfSwimSuit(); - else if (!Game1.player.bathingClothes && (!SwimUtils.IsWearingScubaGear() || Config.SwimSuitAlways)) + else if (!Game1.player.bathingClothes.Value && (!SwimUtils.IsWearingScubaGear() || Config.SwimSuitAlways)) Game1.player.changeIntoSwimsuit(); - if (Game1.player.boots.Value != null && ModEntry.scubaFinsID.Value != -1 && Game1.player.boots.Value.indexInTileSheet == ModEntry.scubaFinsID.Value) + if (Game1.player.boots.Value != null && ModEntry.scubaFinsID.Value != -1 && Game1.player.boots.Value.indexInTileSheet.Value == ModEntry.scubaFinsID.Value) { int buffId = 42883167; Buff buff = Game1.buffsDisplay.otherBuffs.FirstOrDefault((Buff p) => p.which == buffId); @@ -736,7 +736,7 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) Game1.player.swimming.Value = true; - if (!Game1.player.bathingClothes && !SwimUtils.IsWearingScubaGear()) + if (!Game1.player.bathingClothes.Value && !SwimUtils.IsWearingScubaGear()) Game1.player.changeIntoSwimsuit(); } @@ -747,7 +747,7 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) if (!ModEntry.myButtonDown.Value || Game1.player.millisecondsPlayed - lastJump.Value < 250 || SwimUtils.IsMapUnderwater(Game1.player.currentLocation.Name)) return; - if (Helper.Input.IsDown(SButton.MouseLeft) && !Game1.player.swimming && (Game1.player.CurrentTool is WateringCan || Game1.player.CurrentTool is FishingRod)) + if (Helper.Input.IsDown(SButton.MouseLeft) && !Game1.player.swimming.Value && (Game1.player.CurrentTool is WateringCan || Game1.player.CurrentTool is FishingRod)) return; List tiles = SwimUtils.GetTilesInDirection(5); @@ -778,7 +778,7 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) int xTile = (Game1.viewport.X + Game1.getOldMouseX()) / 64; int yTile = (Game1.viewport.Y + Game1.getOldMouseY()) / 64; bool water = Game1.player.currentLocation.waterTiles[xTile, yTile]; - if (Game1.player.swimming != water) + if (Game1.player.swimming.Value != water) { distance = -1; } @@ -790,12 +790,12 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) } //Monitor.Value.Log("Distance: " + distance); - bool nextToLand = Game1.player.swimming && !Game1.player.currentLocation.isTilePassable(new Location((int)tiles.Last().X, (int)tiles.Last().Y), Game1.viewport) && !SwimUtils.IsWaterTile(tiles[tiles.Count - 2]) && distance < maxDistance; + bool nextToLand = Game1.player.swimming.Value && !Game1.player.currentLocation.isTilePassable(new Location((int)tiles.Last().X, (int)tiles.Last().Y), Game1.viewport) && !SwimUtils.IsWaterTile(tiles[tiles.Count - 2]) && distance < maxDistance; bool nextToWater = false; try { - nextToWater = !Game1.player.swimming && + nextToWater = !Game1.player.swimming.Value && !SwimUtils.IsTilePassable(Game1.player.currentLocation, new Location((int)tiles.Last().X, (int)tiles.Last().Y), Game1.viewport) && (Game1.player.currentLocation.waterTiles[(int)tiles.Last().X, (int)tiles.Last().Y] || SwimUtils.IsWaterTile(tiles[tiles.Count - 2])) @@ -855,8 +855,8 @@ public static void GameLoop_UpdateTicked(object sender, UpdateTickedEventArgs e) { lastJump.Value = Game1.player.millisecondsPlayed; //Monitor.Value.Log("got swim location"); - if (Game1.player.swimming) - { + if (Game1.player.swimming.Value) + { ModEntry.willSwim.Value = false; Game1.player.swimming.Value = false; Game1.player.freezePause = Config.JumpTimeInMilliseconds; diff --git a/Swim/SwimMaps.cs b/Swim/SwimMaps.cs index 8c023b4a..8133b6d0 100644 --- a/Swim/SwimMaps.cs +++ b/Swim/SwimMaps.cs @@ -401,7 +401,7 @@ public static void AddOceanTreasure(GameLocation l) possibles.Add(390); } possibles.Add(382); - treasures.Add(new StardewValley.Object(possibles.ElementAt(Game1.random.Next(possibles.Count)), Game1.random.Next(2, 7) * ((Game1.random.NextDouble() < 0.05 + (double)Game1.player.luckLevel * 0.015) ? 2 : 1), false, -1, 0)); + treasures.Add(new StardewValley.Object(possibles.ElementAt(Game1.random.Next(possibles.Count)), Game1.random.Next(2, 7) * ((Game1.random.NextDouble() < 0.05 + (double)Game1.player.luckLevel.Value * 0.015) ? 2 : 1), false, -1, 0)); if (Game1.random.NextDouble() < 0.05 + (double)Game1.player.LuckLevel * 0.03) { treasures.Last().Stack *= 2; @@ -423,7 +423,7 @@ public static void AddOceanTreasure(GameLocation l) } break; case 2: - if (Game1.random.NextDouble() < 0.1 && Game1.netWorldState.Value.LostBooksFound < 21 && Game1.player.hasOrWillReceiveMail("lostBookFound")) + if (Game1.random.NextDouble() < 0.1 && Game1.netWorldState.Value.LostBooksFound.Value < 21 && Game1.player.hasOrWillReceiveMail("lostBookFound")) { treasures.Add(new StardewValley.Object(102, 1, false, -1, 0)); } diff --git a/Swim/SwimPatches.cs b/Swim/SwimPatches.cs index 4439745a..daf56405 100644 --- a/Swim/SwimPatches.cs +++ b/Swim/SwimPatches.cs @@ -30,7 +30,7 @@ public static void FarmerRenderer_draw_Prefix(Farmer who, ref bool __state) { try { - if(who.swimming && Game1.player.currentLocation.Name.StartsWith("Underwater")) + if(who.swimming.Value && Game1.player.currentLocation.Name.StartsWith("Underwater")) { who.swimming.Value = false; __state = true; @@ -45,7 +45,7 @@ public static bool FarmerSprite_checkForFootstep_Prefix() { try { - if(Game1.player.swimming) + if(Game1.player.swimming.Value) { return false; } @@ -75,7 +75,7 @@ internal static void GameLocation_StartEvent_Postfix() { try { - if (Game1.player.swimming) + if (Game1.player.swimming.Value) { Game1.player.swimming.Value = false; if (!Config.SwimSuitAlways) @@ -92,7 +92,7 @@ internal static void Event_exitEvent_Postfix(Event __instance) try { Monitor.Log($"exiting event"); - if (__instance.exitLocation != null && __instance.exitLocation != null && __instance.exitLocation.Location.waterTiles != null && Game1.player.positionBeforeEvent != null && __instance.exitLocation.Location.waterTiles[(int)(Game1.player.positionBeforeEvent.X),(int)(Game1.player.positionBeforeEvent.Y)]) + if (__instance.exitLocation != null && __instance.exitLocation != null && __instance.exitLocation.Location.waterTiles != null && __instance.exitLocation.Location.waterTiles[(int)(Game1.player.positionBeforeEvent.X),(int)(Game1.player.positionBeforeEvent.Y)]) { Monitor.Log($"swimming again"); ChangeAfterEvent(); @@ -116,7 +116,7 @@ public static void Farmer_updateCommon_Prefix(ref Farmer __instance) { try { - if (__instance.swimming && (!Config.ReadyToSwim || Config.SwimRestoresVitals) && __instance.timerSinceLastMovement > 0 && !Game1.eventUp && (Game1.activeClickableMenu == null || Game1.IsMultiplayer) && !Game1.paused) + if (__instance.swimming.Value && (!Config.ReadyToSwim || Config.SwimRestoresVitals) && __instance.timerSinceLastMovement > 0 && !Game1.eventUp && (Game1.activeClickableMenu == null || Game1.IsMultiplayer) && !Game1.paused) { if (__instance.timerSinceLastMovement > 800) { @@ -137,12 +137,12 @@ public static void Farmer_updateCommon_Postfix(ref Farmer __instance) { try { - if (__instance.swimming && (!Config.ReadyToSwim || Config.SwimRestoresVitals) && __instance.timerSinceLastMovement > 0 && !Game1.eventUp && (Game1.activeClickableMenu == null || Game1.IsMultiplayer) && !Game1.paused) + if (__instance.swimming.Value && (!Config.ReadyToSwim || Config.SwimRestoresVitals) && __instance.timerSinceLastMovement > 0 && !Game1.eventUp && (Game1.activeClickableMenu == null || Game1.IsMultiplayer) && !Game1.paused) { if (__instance.swimTimer < 0) { __instance.swimTimer = 100; - if (__instance.stamina < (float)__instance.maxStamina) + if (__instance.stamina < (float)__instance.maxStamina.Value) { float stamina = __instance.stamina; __instance.stamina = stamina + 1f; @@ -259,7 +259,7 @@ public static bool Toolbar_draw_Prefix() public static void Wand_DoFunction_Prefix(ref Farmer who, ref bool __state) { - if (who.bathingClothes) + if (who.bathingClothes.Value) { who.bathingClothes.Value = false; __state = true; @@ -385,7 +385,7 @@ public static void GameLocation_performTouchAction_Prefix(string fullActionStrin })[0]; if (text == "PoolEntrance") { - if (!Game1.player.swimming) + if (!Game1.player.swimming.Value) { Config.ReadyToSwim = false; } @@ -406,7 +406,7 @@ public static void GameLocation_performTouchAction_Postfix(string fullActionStri })[0]; if (text == "PoolEntrance") { - if (Game1.player.swimming) + if (Game1.player.swimming.Value) { Config = Helper.ReadConfig(); } @@ -456,7 +456,7 @@ public static void GameLocation_isCollidingPosition_Postfix(GameLocation __insta { try { - if (__result == false || !isFarmer || !character.Equals(Game1.player) || !Game1.player.swimming || ModEntry.isUnderwater.Value) + if (__result == false || !isFarmer || !character.Equals(Game1.player) || !Game1.player.swimming.Value || ModEntry.isUnderwater.Value) return; Vector2 next = SwimUtils.GetNextTile(); @@ -514,7 +514,7 @@ public static void GameLocation_sinkDebris_Postfix(GameLocation __instance, bool { Monitor.Log($"sink debris: creating copy of debris {debris.debrisType} chunk {chunk.debrisType} item {debris.item != null} on {diveLocation.OtherMapName}"); - if (debris.debrisType != Debris.DebrisType.ARCHAEOLOGY && debris.debrisType != Debris.DebrisType.OBJECT && chunk.debrisType % 2 != 0) + if (debris.debrisType.Value != Debris.DebrisType.ARCHAEOLOGY && debris.debrisType.Value != Debris.DebrisType.OBJECT && chunk.debrisType % 2 != 0) { Monitor.Log($"sink debris: non-item debris"); break; diff --git a/Swim/SwimUtils.cs b/Swim/SwimUtils.cs index df0e3321..57d3291d 100644 --- a/Swim/SwimUtils.cs +++ b/Swim/SwimUtils.cs @@ -164,7 +164,7 @@ public static int CheckForBuriedItem(Farmer who) objectIndex = 96; break; case 1: - objectIndex = (who.hasOrWillReceiveMail("lostBookFound") ? ((Game1.netWorldState.Value.LostBooksFound < 21) ? 102 : 770) : 770); + objectIndex = (who.hasOrWillReceiveMail("lostBookFound") ? ((Game1.netWorldState.Value.LostBooksFound.Value < 21) ? 102 : 770) : 770); break; case 2: objectIndex = 110; @@ -234,8 +234,8 @@ public static int CheckForBuriedItem(Farmer who) public static bool IsWearingScubaGear() { - bool tank = ModEntry.scubaTankID.Value != -1 && Game1.player.shirtItem != null && Game1.player.shirtItem.Value != null && Game1.player.shirtItem.Value.parentSheetIndex != null && Game1.player.shirtItem.Value.parentSheetIndex == ModEntry.scubaTankID.Value; - bool mask = ModEntry.scubaMaskID.Value != -1 && Game1.player.hat != null && Game1.player.hat.Value != null && Game1.player.hat.Value.which != null && Game1.player.hat.Value.which == ModEntry.scubaMaskID.Value; + bool tank = ModEntry.scubaTankID.Value != -1 && Game1.player.shirtItem.Value != null && Game1.player.shirtItem.Value != null && Game1.player.shirtItem.Value.ParentSheetIndex == ModEntry.scubaTankID.Value; + bool mask = ModEntry.scubaMaskID.Value != -1 && Game1.player.hat.Value != null && Game1.player.hat.Value != null && Game1.player.hat.Value.which?.Value == ModEntry.scubaMaskID.Value; return tank && mask; } @@ -245,7 +245,7 @@ public static bool IsInWater() var tiles = Game1.player.currentLocation.waterTiles; Point p = Game1.player.getTileLocationPoint(); - if (!Game1.player.swimming && Game1.player.currentLocation.map.GetLayer("Buildings").PickTile(new Location(p.X, p.Y) * Game1.tileSize, Game1.viewport.Size) != null) + if (!Game1.player.swimming.Value && Game1.player.currentLocation.map.GetLayer("Buildings").PickTile(new Location(p.X, p.Y) * Game1.tileSize, Game1.viewport.Size) != null) return false; return IsMapUnderwater(Game1.player.currentLocation.Name) @@ -254,12 +254,12 @@ public static bool IsInWater() tiles != null && ( - (p.X >= 0 && p.Y >= 0 && tiles.GetLength(0) > p.X && tiles.GetLength(1) > p.Y && tiles[p.X, p.Y]) + (p.X >= 0 && p.Y >= 0 && tiles.waterTiles.GetLength(0) > p.X && tiles.waterTiles.GetLength(1) > p.Y && tiles[p.X, p.Y]) || ( - Game1.player.swimming + Game1.player.swimming.Value && - (p.X < 0 || p.Y < 0 || tiles.GetLength(0) <= p.X || tiles.GetLength(1) <= p.Y) + (p.X < 0 || p.Y < 0 || tiles.waterTiles.GetLength(0) <= p.X || tiles.waterTiles.GetLength(1) <= p.Y) ) ) ); @@ -424,7 +424,7 @@ public static async void SeaMonsterSay(string speech) public static bool IsWaterTile(Vector2 tilePos) { - if (Game1.player.currentLocation != null && Game1.player.currentLocation.waterTiles != null && tilePos.X >= 0 && tilePos.Y >= 0 && Game1.player.currentLocation.waterTiles.GetLength(0) > tilePos.X && Game1.player.currentLocation.waterTiles.GetLength(1) > tilePos.Y) + if (Game1.player.currentLocation != null && Game1.player.currentLocation.waterTiles != null && tilePos.X >= 0 && tilePos.Y >= 0 && Game1.player.currentLocation.waterTiles.waterTiles.GetLength(0) > tilePos.X && Game1.player.currentLocation.waterTiles.waterTiles.GetLength(1) > tilePos.Y) { return Game1.player.currentLocation.waterTiles[(int)tilePos.X, (int)tilePos.Y]; } @@ -464,7 +464,7 @@ public static bool IsTilePassable(GameLocation location, Location tileLocation, } public static bool DebrisIsAnItem(Debris debris) { - return debris.debrisType == Debris.DebrisType.OBJECT || debris.debrisType == Debris.DebrisType.ARCHAEOLOGY || debris.debrisType == Debris.DebrisType.RESOURCE || debris.item != null; + return debris.debrisType.Value == Debris.DebrisType.OBJECT || debris.debrisType.Value == Debris.DebrisType.ARCHAEOLOGY || debris.debrisType.Value == Debris.DebrisType.RESOURCE || debris.item != null; } } } \ No newline at end of file diff --git a/Swim/manifest.json b/Swim/manifest.json index f7d4259a..1081ff1b 100644 --- a/Swim/manifest.json +++ b/Swim/manifest.json @@ -1,11 +1,11 @@ { "Name": "Swim Mod", "Author": "aedenthorn", - "Version": "2.0.1", + "Version": "3.0.0", "Description": "Allows you to swim.", "UniqueID": "aedenthorn.Swim", "EntryDll": "Swim.dll", - "MinimumApiVersion": "3.8.0", + "MinimumApiVersion": "3.12.6", "UpdateKeys": ["Nexus:6326"], "ModUpdater": { "Repository": "StardewValleyMods", diff --git a/Swim/packages.config b/Swim/packages.config index c9d286fc..27004dd0 100644 --- a/Swim/packages.config +++ b/Swim/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Terrarium/ATerrarium.csproj b/Terrarium/ATerrarium.csproj index 061fc185..1b3e6b14 100644 --- a/Terrarium/ATerrarium.csproj +++ b/Terrarium/ATerrarium.csproj @@ -72,11 +72,11 @@ - + 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}. - + \ No newline at end of file diff --git a/Terrarium/packages.config b/Terrarium/packages.config index 3727d0d6..7e47d9af 100644 --- a/Terrarium/packages.config +++ b/Terrarium/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/TotallyUnrelatedProject/CustomFixedDialogue.csproj b/TotallyUnrelatedProject/CustomFixedDialogue.csproj index 06fdea2a..5c34a921 100644 --- a/TotallyUnrelatedProject/CustomFixedDialogue.csproj +++ b/TotallyUnrelatedProject/CustomFixedDialogue.csproj @@ -58,11 +58,11 @@ - + 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}. - + \ No newline at end of file diff --git a/TotallyUnrelatedProject/packages.config b/TotallyUnrelatedProject/packages.config index 3727d0d6..7e47d9af 100644 --- a/TotallyUnrelatedProject/packages.config +++ b/TotallyUnrelatedProject/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/TransparentObjects/TransparentObjects.csproj b/TransparentObjects/TransparentObjects.csproj index fce25e97..d6e03621 100644 --- a/TransparentObjects/TransparentObjects.csproj +++ b/TransparentObjects/TransparentObjects.csproj @@ -59,11 +59,11 @@ - + 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}. - + \ No newline at end of file diff --git a/TransparentObjects/packages.config b/TransparentObjects/packages.config index 3727d0d6..7e47d9af 100644 --- a/TransparentObjects/packages.config +++ b/TransparentObjects/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/TrashCanReactions/TrashCanReactions.csproj b/TrashCanReactions/TrashCanReactions.csproj index 23af62ea..4f25ae18 100644 --- a/TrashCanReactions/TrashCanReactions.csproj +++ b/TrashCanReactions/TrashCanReactions.csproj @@ -60,11 +60,11 @@ - + 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}. - + \ No newline at end of file diff --git a/TrashCanReactions/packages.config b/TrashCanReactions/packages.config index 3727d0d6..7e47d9af 100644 --- a/TrashCanReactions/packages.config +++ b/TrashCanReactions/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/TreasureChestsExpanded/TreasureChestsExpanded.csproj b/TreasureChestsExpanded/TreasureChestsExpanded.csproj index 1425ffd1..bc8da1a3 100644 --- a/TreasureChestsExpanded/TreasureChestsExpanded.csproj +++ b/TreasureChestsExpanded/TreasureChestsExpanded.csproj @@ -59,11 +59,11 @@ - + 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}. - + \ No newline at end of file diff --git a/TreasureChestsExpanded/packages.config b/TreasureChestsExpanded/packages.config index 3727d0d6..7e47d9af 100644 --- a/TreasureChestsExpanded/packages.config +++ b/TreasureChestsExpanded/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/UndergroundSecrets/UndergroundSecrets.csproj b/UndergroundSecrets/UndergroundSecrets.csproj index 1ee6d597..e1cc843c 100644 --- a/UndergroundSecrets/UndergroundSecrets.csproj +++ b/UndergroundSecrets/UndergroundSecrets.csproj @@ -75,11 +75,11 @@ - + 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}. - + \ No newline at end of file diff --git a/UndergroundSecrets/packages.config b/UndergroundSecrets/packages.config index 3727d0d6..7e47d9af 100644 --- a/UndergroundSecrets/packages.config +++ b/UndergroundSecrets/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/VideoPlayer/VideoPlayer.csproj b/VideoPlayer/VideoPlayer.csproj index 5eaa3c25..f5aec1ae 100644 --- a/VideoPlayer/VideoPlayer.csproj +++ b/VideoPlayer/VideoPlayer.csproj @@ -70,11 +70,11 @@ - + 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}. - + \ No newline at end of file diff --git a/VideoPlayer/packages.config b/VideoPlayer/packages.config index 0413dcb4..60a28b90 100644 --- a/VideoPlayer/packages.config +++ b/VideoPlayer/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/WitcherMod/WitcherMod.csproj b/WitcherMod/WitcherMod.csproj index 0ec4a233..49eb3f4e 100644 --- a/WitcherMod/WitcherMod.csproj +++ b/WitcherMod/WitcherMod.csproj @@ -87,11 +87,11 @@ - + 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}. - + \ No newline at end of file diff --git a/WitcherMod/packages.config b/WitcherMod/packages.config index 3727d0d6..7e47d9af 100644 --- a/WitcherMod/packages.config +++ b/WitcherMod/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/YAJM/ModConfig.cs b/YAJM/ModConfig.cs index b5a0ea2d..55cb9897 100644 --- a/YAJM/ModConfig.cs +++ b/YAJM/ModConfig.cs @@ -7,7 +7,7 @@ using System.Text; using System.Threading.Tasks; -namespace SixtyNine +namespace YAJM { public class ModConfig { diff --git a/YAJM/ModEntry.cs b/YAJM/ModEntry.cs index 9cb42ac2..80059299 100644 --- a/YAJM/ModEntry.cs +++ b/YAJM/ModEntry.cs @@ -1,4 +1,4 @@ -using Harmony; +using HarmonyLib; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using StardewModdingAPI; @@ -7,10 +7,8 @@ using System; using System.Collections.Generic; using System.IO; -using System.Threading; -using xTile.Dimensions; -namespace SixtyNine +namespace YAJM { public class ModEntry : Mod, IAssetEditor { @@ -22,8 +20,6 @@ public class ModEntry : Mod, IAssetEditor private float velY; private Texture2D horseShadow; private Texture2D horse; - private bool playerJumping; - private bool playerJumpingOver; private bool playerJumpingWithHorse; private static bool blockedJump; @@ -38,7 +34,7 @@ public override void Entry(IModHelper helper) Helper.Events.Input.ButtonPressed += Input_ButtonPressed; - HarmonyInstance harmony = HarmonyInstance.Create(Helper.ModRegistry.ModID); + Harmony harmony = new Harmony(Helper.ModRegistry.ModID); harmony.Patch( original: AccessTools.Method(typeof(Farmer), nameof(Farmer.getDrawLayer)), @@ -82,7 +78,7 @@ private static void NPC_draw_prefix(ref NPC __instance, SpriteBatch b, float alp { if (__instance is Horse) { - b.Draw(context.horseShadow, __instance.getLocalPosition(Game1.viewport) + Config.HorseShadowOffset + new Vector2((float)(__instance.Sprite.SpriteWidth * 4 / 2), (float)(__instance.GetBoundingBox().Height / 2)), new Microsoft.Xna.Framework.Rectangle?(__instance.Sprite.SourceRect), Color.White * alpha, __instance.rotation, new Vector2((float)(__instance.Sprite.SpriteWidth / 2), (float)__instance.Sprite.SpriteHeight * 3f / 4f), Math.Max(0.2f, __instance.scale) * 4f, (__instance.flip || (__instance.Sprite.CurrentAnimation != null && __instance.Sprite.CurrentAnimation[__instance.Sprite.currentAnimationIndex].flip)) ? SpriteEffects.FlipHorizontally : SpriteEffects.None, 0); + b.Draw(context.horseShadow, __instance.getLocalPosition(Game1.viewport) + Config.HorseShadowOffset + new Vector2((float)(__instance.Sprite.SpriteWidth * 4 / 2), (float)(__instance.GetBoundingBox().Height / 2)), new Microsoft.Xna.Framework.Rectangle?(__instance.Sprite.SourceRect), Color.White * alpha, __instance.rotation, new Vector2((float)(__instance.Sprite.SpriteWidth / 2), (float)__instance.Sprite.SpriteHeight * 3f / 4f), Math.Max(0.2f, __instance.Scale) * 4f, (__instance.flip || (__instance.Sprite.CurrentAnimation != null && __instance.Sprite.CurrentAnimation[__instance.Sprite.currentAnimationIndex].flip)) ? SpriteEffects.FlipHorizontally : SpriteEffects.None, 0); if ((__instance as Horse).rider != null) { if (context.playerJumpingWithHorse) @@ -100,9 +96,8 @@ private static void NPC_draw_prefix(ref NPC __instance, SpriteBatch b, float alp private void Input_ButtonPressed(object sender, StardewModdingAPI.Events.ButtonPressedEventArgs e) { - if (e.Button == Config.JumpButton && Context.IsPlayerFree && !Game1.player.IsSitting() && !Game1.player.swimming && Game1.currentMinigame == null && Game1.player.yJumpVelocity == 0) + if (e.Button == Config.JumpButton && Context.IsPlayerFree && !Game1.player.IsSitting() && !Game1.player.swimming.Value && Game1.currentMinigame == null && Game1.player.yJumpVelocity == 0) { - playerJumpingOver = false; playerJumpingWithHorse = false; blockedJump = false; @@ -147,7 +142,7 @@ private void Input_ButtonPressed(object sender, StardewModdingAPI.Events.ButtonP || box.Y >= l.map.Layers[0].LayerHeight * Game1.tileSize || box.X < 0 || box.Y < 0 - || (l.waterTiles?[box.X / Game1.tileSize, box.Y / Game1.tileSize] == true && !Helper.ModRegistry.IsLoaded("aedenthorn.Swim")) + || (l.waterTiles?.waterTiles[box.X / Game1.tileSize, box.Y / Game1.tileSize].isWater == true && !Helper.ModRegistry.IsLoaded("aedenthorn.Swim")) ); } @@ -166,7 +161,6 @@ private void Input_ButtonPressed(object sender, StardewModdingAPI.Events.ButtonP velY = oy * (float)Math.Sqrt(i * 16); lastYJumpVelocity = 0; Game1.player.canMove = false; - playerJumpingOver = true; PlayerJump((float)Math.Sqrt(i * 16)); return; } @@ -178,7 +172,6 @@ private void Input_ButtonPressed(object sender, StardewModdingAPI.Events.ButtonP private void PlayerJump(float v) { - playerJumping = true; Game1.player.synchronizedJump(v); Helper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked; } @@ -187,8 +180,6 @@ private void GameLoop_UpdateTicked(object sender, StardewModdingAPI.Events.Updat { if (Game1.player.yJumpVelocity == 0f && lastYJumpVelocity < 0f) { - playerJumping = false; - playerJumpingOver = false; playerJumpingWithHorse = false; blockedJump = false; Game1.player.canMove = true; diff --git a/YAJM/Properties/AssemblyInfo.cs b/YAJM/Properties/AssemblyInfo.cs deleted file mode 100644 index b20b8d93..00000000 --- a/YAJM/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("YAJM")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("YAJM")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("dcafd059-562a-47e1-810b-4c0c2793e2fc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/YAJM/YAJM.csproj b/YAJM/YAJM.csproj index f6822214..8ea89745 100644 --- a/YAJM/YAJM.csproj +++ b/YAJM/YAJM.csproj @@ -1,72 +1,11 @@ - - - + - Debug - AnyCPU - {DCAFD059-562A-47E1-810B-4C0C2793E2FC} - Library - Properties - YAJM - YAJM - v4.5.2 - 512 - true - - - true + 1.0.0 + net5.0 + true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - - - 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}. - - - \ No newline at end of file diff --git a/YAJM/manifest.json b/YAJM/manifest.json index 3a7a2cb2..048435ea 100644 --- a/YAJM/manifest.json +++ b/YAJM/manifest.json @@ -1,11 +1,11 @@ { "Name": "Yet Another Jump Mod", "Author": "aedenthorn", - "Version": "0.6.0", + "Version": "0.7.0", "Description": "Advanced Jumping.", "UniqueID": "aedenthorn.YAJM", "EntryDll": "YAJM.dll", - "MinimumApiVersion": "3.8.0", + "MinimumApiVersion": "3.12.6", "UpdateKeys": ["Nexus:6546"], "ModUpdater": { "Repository": "StardewValleyMods", diff --git a/YAJM/packages.config b/YAJM/packages.config deleted file mode 100644 index 3727d0d6..00000000 --- a/YAJM/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ZombieOutbreak/ZombieOutbreak.csproj b/ZombieOutbreak/ZombieOutbreak.csproj index 2e33ecd4..76cd3c0c 100644 --- a/ZombieOutbreak/ZombieOutbreak.csproj +++ b/ZombieOutbreak/ZombieOutbreak.csproj @@ -67,11 +67,11 @@ - + 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}. - + \ No newline at end of file diff --git a/ZombieOutbreak/packages.config b/ZombieOutbreak/packages.config index 3727d0d6..7e47d9af 100644 --- a/ZombieOutbreak/packages.config +++ b/ZombieOutbreak/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/_releases/YAJM 0.7.0.zip b/_releases/YAJM 0.7.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..20da477c20380d1a5a517b6f99ab43771022ab9b GIT binary patch literal 38152 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 literal 0 HcmV?d00001