private void UpdateObjectInfoSource(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { //load up all the object information into a static dictionary ObjectInfoSource = new Dictionary <string, IDictionary <int, string> > { { "Object", Game1.objectInformation }, { "BigCraftable", Game1.bigCraftablesInformation }, { "Clothing", Game1.clothingInformation }, { "Ring", Game1.objectInformation }, { "Hat", Helper.Content.Load <Dictionary <int, string> > (@"Data/hats", ContentSource.GameContent) }, { "Boot", Helper.Content.Load <Dictionary <int, string> > (@"Data/Boots", ContentSource.GameContent) }, { "Furniture", Helper.Content.Load <Dictionary <int, string> > (@"Data/Furniture", ContentSource.GameContent) }, { "Weapon", Helper.Content.Load <Dictionary <int, string> > (@"Data/weapons", ContentSource.GameContent) } }; }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { railroad = (Game1.getLocationFromName("Railroad") as Railroad); startupMessage = true; //Check for JSON Assests //if (this.Helper.ModRegistry.IsLoaded("spacechase0.JsonAssets")) //{ // var api = modHelper.ModRegistry.GetApi<IJsonAssetsAPI>("spacechase0.JsonAssets"); // var trees = api?.GetAllFruitTreeIds(); // var crops = api?.GetAllCropIds(); // //Game1.Get //} var fish = Game1.content.Load <Dictionary <int, string> >("Data\\Fish"); var fruitTrees = Game1.content.Load <Dictionary <int, string> >("Data\\fruitTrees"); var crops = Game1.content.Load <Dictionary <int, string> >("Data\\Crops"); ////Content Packs //foreach (IContentPack contentPack in this.Helper.ContentPacks.GetOwned()) //{ // this.Monitor.Log($"Reading content pack: {contentPack.Manifest.Name} {contentPack.Manifest.Version} from {contentPack.DirectoryPath}"); //} }
private void RespawnLivingMushrooms(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { foreach (var item in Game1.getFarm().buildings) { if (item?.indoors?.Value is SlimeHutch hutch) { if (hutch.Objects.TryGetValue(new Vector2(1, 4), out StardewObject incubator)) { if (incubator != null && incubator.Name.Equals("Slime Incubator")) { incubator.Fragility = config.RemovableSlimeHutchIncubator ? StardewObject.fragility_Removable : StardewObject.fragility_Indestructable; } } for (int i = 0; i < hutch.characters.Count; i++) { if (hutch.characters[i] is DustSpirit) { var pos = hutch.characters[i].Position; hutch.characters[i] = CreateFriendlyLivingMushroom(pos); } else if (hutch.characters[i] is RockCrab && hutch.characters[i].Name.Equals("False Magma Cap")) { var pos = hutch.characters[i].Position; hutch.characters[i] = CreateFriendlyMagmaCap(pos, this); } } } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Farm farm = Game1.getFarm(); PMonitor.Log($"Vanilla pet bowl location {farm.petBowlPosition}"); ResetPetBowlLocation(farm, Vector2.Zero); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { ModCore.log("Load a save game!?!?"); Item i = ObjectManager.GetItem("SolarPanelTier1"); if (i == null) { ModCore.log("SOLAR PANEL IS NULL?!?!?!"); } else { ModCore.log("SOLAR PANEL IS NOT NULL!?!?!?"); } Game1.player.addItemToInventoryBool(ObjectManager.GetItem("SolarPanelTier1")); Game1.player.addItemToInventoryBool(ObjectManager.GetItem("Workbench")); Game1.player.addItemsByMenuIfNecessary(new List <Item>() { new StardewValley.Object((int)Enums.SDVObject.Coal, 100), ObjectManager.GetItem("SteelIngot", 20), ObjectManager.GetItem("Anvil", 1), ObjectManager.GetItem("SolarPanelTier1", 1), ObjectManager.GetItem("SolarArrayTier1", 1), new StardewValley.Object(Vector2.Zero, (int)Enums.SDVBigCraftable.Furnace, false), new StardewValley.Object((int)Enums.SDVObject.CopperOre, 10), ObjectManager.GetItem("MiningDrillMachineV1"), new StardewValley.Object((int)Enums.SDVObject.IronBar, 100), ObjectManager.GetItem("WindmillV1"), }); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (!Config.EnableMod) { return; } }
internal void saveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { //Game1.getFarm().grandpaScore.Value = 3; reloadStaticClasses(); FarmHouseStates.harmony.Patch( original: AccessTools.Method(typeof(Farm), nameof(Farm.draw)), transpiler: new HarmonyMethod(AccessTools.Method(typeof(Farm_draw_Patch), nameof(Farm_draw_Patch.Transpiler))), postfix: new HarmonyMethod(AccessTools.Method(typeof(Farm_draw_Patch), nameof(Farm_draw_Patch.Postfix))) ); FarmHouseStates.harmony.Patch( original: AccessTools.Method(typeof(Farm), nameof(Farm.leftClick)), transpiler: new HarmonyMethod(AccessTools.Method(typeof(Farm_leftClick_Patch), nameof(Farm_leftClick_Patch.Transpiler))) ); FarmHouseStates.harmony.Patch( original: AccessTools.Method(typeof(Farm), nameof(Farm.checkAction)), transpiler: new HarmonyMethod(AccessTools.Method(typeof(Farm_checkAction_Patch), nameof(Farm_checkAction_Patch.Transpiler))) ); FarmHouseStates.harmony.Patch( original: AccessTools.Method(typeof(Farm), nameof(Farm.addGrandpaCandles)), transpiler: new HarmonyMethod(AccessTools.Method(typeof(Farm_addGrandpaCandles_Patch), nameof(Farm_addGrandpaCandles_Patch.Transpiler))) ); foreach (Farmer player in Game1.getAllFarmers()) { if (player.currentLocation != null && player.currentLocation is FarmHouse) { Logger.Log("Current location is a farmhouse; getting bed spot from this farmhouse."); player.mostRecentBed = StardewValley.Utility.PointToVector2(FarmHouseStates.getBedSpot(player.currentLocation as FarmHouse)) * 64f; player.position.Value = new StardewValley.Network.NetPosition(new NetVector2(player.mostRecentBed)); player.position.X -= 64f; player.position.Y += 32f; } Logger.Log(player.Name + "'s most recent bed: " + player.mostRecentBed.ToString()); } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { UpdateInteraction(false, null); Helper.Events.GameLoop.ReturnedToTitle += GameLoop_ReturnedToTitle; Helper.Events.GameLoop.OneSecondUpdateTicked += GameLoop_OneSecondUpdateTicked; Helper.Events.Input.ButtonReleased += Input_ButtonReleased; Helper.Events.Input.ButtonPressed += Input_ButtonPressed; }
private void OnSaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (Context.IsMainPlayer) { session = GetSessionSaveData(); InitLocationProfiles(); InitLPsDataOnLoad(); } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { buildingPartDict = SHelper.Content.Load <Dictionary <string, ModularBuildingPart> >(dictPath, ContentSource.GameContent); foreach (var key in buildingPartDict.Keys) { buildingPartDict[key].texture = Helper.Content.Load <Texture2D>(buildingPartDict[key].texturePath, ContentSource.GameContent); } Monitor.Log($"Loaded {buildingPartDict.Count} building parts."); }
/***************** ** Save Loaded ** ******************/ private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { UpdateSelectedLanguage(); //get language code LoadContentPacks(); DrawInTicketStation(); RemoveInvalidLocations(); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Helper.Content.AssetEditors.Add(new ObjectEditor(Helper)); //editing JA items AquariumMessage.Initialize(Helper); if (Utils.CheckAchievement()) { Utils.UnlockAchievement(); } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { currentCookables = null; ingredients = new NetList <Item, NetRef <Item> >() { null, null, null, null, null, null, null, null, null, null, null }; oldIngredients = new Item[] { null, null, null, null, null, null, null, null, null, null, null }; ingredients.OnElementChanged += Ingredients_OnElementChanged; }
private static void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { int id = PufferChickID; if (LegendaryFish.ContainsKey(id)) { return; } LegendaryFish.Add(id, ModEntry.PufferChickName); }
/// <summary> /// On a save loaded, store the language for translation purposes. Done on save loaded in /// case it's changed between saves /// /// Also retrieve all object informations. This is done on save loaded because that's /// when JA adds custom items /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Translations.UpdateSelectedLanguage(); ShopManager.UpdateTranslations(); ItemsUtil.UpdateObjectInfoSource(); ShopManager.InitializeItemStocks(); ItemsUtil.RegisterItemsToRemove(); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (!Context.IsWorldReady) { throw new InvalidOperationException("Context not ready in GameLoop_SavedLoaded. Cannot read required data from the Game's GameLocations."); } TodaysStock = null; PlacedAugmentorsManager.Instance = new PlacedAugmentorsManager(); }
public static void AfterLoad_LoadRecipeBooks(object o, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (!Directory.Exists(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"))) { Directory.CreateDirectory(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData")); } string[] directories = Directory.GetDirectories(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData")); string playerData = Path.Combine(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"), PlayerUtilities.GetUniqueCharacterString()); string objectPath = Path.Combine(playerData, "RecipeInformation"); Directory.CreateDirectory(objectPath); string[] objectFiles = Directory.GetFiles(objectPath); foreach (string file in objectFiles) { CraftingRecipeBook book = ModCore.Serializer.Deserialize <CraftingRecipeBook>(file); string fileName = Path.GetFileNameWithoutExtension(file); CraftingRecipeBook.CraftingRecipesByGroup.Add(fileName, book); } InitializeRecipeBooks(); for (int bookIndex = 0; bookIndex < CraftingRecipesByGroup.Count; bookIndex++) { KeyValuePair <string, CraftingRecipeBook> pair = CraftingRecipesByGroup.ElementAt(bookIndex); for (int recipeIndex = 0; recipeIndex < pair.Value.craftingRecipes.Count; recipeIndex++) { KeyValuePair <string, UnlockableCraftingRecipe> recipe = pair.Value.craftingRecipes.ElementAt(recipeIndex); for (int i = 0; i < recipe.Value.recipe.ingredients.Count; i++) { if (recipe.Value.recipe.ingredients[i].item is MultiTiledObject) { //ModCore.log("Found a multi tiled object as an output!"); //ModCore.log("Found a multi tiled object!"); Type t = recipe.Value.recipe.ingredients[i].item.GetType(); string id = (recipe.Value.recipe.ingredients[i].item as MultiTiledObject).info.id; recipe.Value.recipe.ingredients[i].item = ModCore.ObjectManager.getItemByIDAndType(id, t); } } for (int i = 0; i < recipe.Value.recipe.outputs.Count; i++) { if (recipe.Value.recipe.outputs[i].item is MultiTiledObject) { //ModCore.log("Found a multi tiled object as an output!"); //ModCore.log("Found a multi tiled object!"); Type t = recipe.Value.recipe.outputs[i].item.GetType(); string id = (recipe.Value.recipe.outputs[i].item as MultiTiledObject).info.id; recipe.Value.recipe.outputs[i].item = ModCore.ObjectManager.getItemByIDAndType(id, t); //ModCore.log("Components are: "+(recipe.Value.recipe.outputs[i].item as MultiTiledObject).objects.Count); } } } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (Plato.ModHelper.Data.ReadSaveData <ShopSaveData>(ShopSaveData) is ShopSaveData svd) { MapTKShop.Bought.Clear(); foreach (var s in svd.BoughtItems) { MapTKShop.Bought.Add(s.Key, s.Value); } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (Helper1.ModRegistry.Get("spacechase0.JsonAssets") != null) { JAAPI = Helper1.ModRegistry.GetApi <IApi>("spacechase0.JsonAssets"); } if (Helper1.ModRegistry.Get("spacechase0.DynamicGameAssets") != null) { DGAAPI = Helper1.ModRegistry.GetApi <IDynamicGameAssetsApi>("spacechase0.DynamicGameAssets"); } }
public void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { LoadAdvancedMeleeWeapons(); foreach (Item item in Game1.player.items) { if (item is MeleeWeapon) { AddEnchantments(item as MeleeWeapon); } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { using (var dict = Helper.Content.Load <Dictionary <string, CustomAcheivementData> >(dictPath, ContentSource.GameContent).GetEnumerator()) { while (dict.MoveNext()) { var a = dict.Current.Value; int hash = a.name.GetHashCode(); currentAchievements[hash] = a; } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (!Config.EnableMod) { return; } furnitureDisplayDict.Clear(); var tempDisplayDict = Helper.Content.Load <Dictionary <string, FurnitureDisplayData> >(frameworkPath, ContentSource.GameContent); foreach (var kvp in tempDisplayDict) { if (kvp.Key.Contains(",")) { var names = kvp.Key.Split(','); foreach (var name in names) { if (name.Contains(":")) { var parts = name.Split(':'); var rots = parts[1].Split(','); foreach (var rot in rots) { furnitureDisplayDict.TryAdd(parts[0] + ":" + rot, kvp.Value); } } else { furnitureDisplayDict.TryAdd(name, kvp.Value); } Monitor.Log($"Loaded furniture display template for {name}"); } } else { if (kvp.Key.Contains(":")) { var parts = kvp.Key.Split(':'); var rots = parts[1].Split(','); foreach (var rot in rots) { furnitureDisplayDict.TryAdd(parts[0] + ":" + rot, kvp.Value); } } else { furnitureDisplayDict.TryAdd(kvp.Key, kvp.Value); } Monitor.Log($"Loaded furniture display template for {kvp.Key}"); } } Monitor.Log($"Loaded {furnitureDisplayDict.Count} furniture display templates"); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (config.CustomMailbox) { try { Texture2D tex = new Texture2D(Game1.graphics.GraphicsDevice, 16, 32); Color[] data = new Color[tex.Width * tex.Height]; tex.GetData(data); Texture2D source = Helper.Content.Load <Texture2D>($"Maps/{Game1.currentSeason.ToLower()}_outdoorsTileSheet", ContentSource.GameContent); Color[] srcData = new Color[source.Width * source.Height]; source.GetData(srcData); int width = 400; int startx = 80; int starty = 1232; int start = starty * width + startx; for (int i = 0; i < data.Length; i++) { int srcIdx = start + (i / 16 * width + i % 16); data[i] = srcData[srcIdx]; } tex.SetData(data); Stream stream = File.Create(Path.Combine(Helper.DirectoryPath, "json-assets", "BigCraftables", "Mailbox", "big-craftable.png")); tex.SaveAsPng(stream, tex.Width, tex.Height); stream.Close(); Monitor.Log($"Wrote custom mailbox texture from Maps/{ Game1.currentSeason.ToLower()}_outdoorsTileSheet to {Path.Combine(Helper.DirectoryPath, "json-assets", "BigCraftables", "Mailbox", "big-craftable.png")}.", LogLevel.Debug); Helper.Content.InvalidateCache("Tilesheets/Craftables"); } catch (Exception ex) { Monitor.Log($"Error writing mailbox texture.\n{ex}", LogLevel.Warn); } } Farm farm = Game1.getFarm(); foreach (KeyValuePair <Vector2, Object> kvp in farm.objects.Pairs) { if (kvp.Value.Name.EndsWith("Mailbox")) { (farm as Farm).mapMainMailboxPosition = Utility.Vector2ToPoint(kvp.Key); PMonitor.Log($"Set mailbox location to {kvp.Key}"); return; } } farm.mapMainMailboxPosition = Point.Zero; PMonitor.Log("Set mailbox location to 0,0"); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Settings.Remote = null; if (Game1.multiplayerMode == 0) { Settings.IsMultiplayerSession = false; Settings.IsServer = true; } else { Settings.IsMultiplayerSession = true; Settings.IsServer = Game1.multiplayerMode == Game1.multiplayerServer; } }
void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Cultivation.Load(); Pests.Load(); for (int i = 0; i < 10; i++) { Helper.ConsoleCommands.Trigger("player_add", new string[2] { "name", "Seed Maker" }); } Helper.ConsoleCommands.Trigger("player_add", new string[3] { "name", "Melon", "100" }); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { //this.loadContent(); Serializer.afterLoad(); ShopHacks.AddInCustomItemsToShops(); ObjectInteractionHacks.AfterLoad_RestoreTrackedMachines(); // Game1.player.addItemToInventory(GetObjectFromPool("Omegasis.BigTiledTest")); //Game1.player.addItemToInventory(ObjectManager.getChair("Omegasis.Revitalize.Furniture.Chairs.OakChair")); Game1.player.addItemToInventoryBool(ObjectManager.GetItem("Workbench")); MultiTiledObject batteryBin = (MultiTiledObject)ModCore.ObjectManager.GetItem("BatteryBin", 1); batteryBin.dyeColor(Framework.Illuminate.ColorsList.Lime); //PickaxeExtended pick = new PickaxeExtended(new BasicItemInformation("My First Pickaxe", "Omegasis.Revitalize.Items.Tools.MyFirstPickaxe", "A testing pickaxe. Does it work?", "Tool", Color.SlateGray, 0, 0, false, 500, false, false, TextureManager.GetTexture(Manifest, "Tools", "Pickaxe"), new AnimationManager(TextureManager.GetExtendedTexture(Manifest, "Tools", "Pickaxe"), new Animation(0, 0, 16, 16)), Color.White, true, null, null),2,TextureManager.GetExtendedTexture(Manifest,"Tools","TestingPickaxeWorking")); Game1.player.addItemsByMenuIfNecessary(new List <Item>() { new StardewValley.Object((int)Enums.SDVObject.Coal, 100), ModCore.ObjectManager.GetItem("SteelIngot", 20), ModCore.ObjectManager.GetItem("TrashCan", 1), ModCore.ObjectManager.resources.getResource("Sand", 5), ModCore.ObjectManager.GetItem("Anvil", 1), ModCore.ObjectManager.GetItem("SolarPanelTier1", 1), ModCore.ObjectManager.GetItem("SolarArrayTier1", 1), new StardewValley.Object(Vector2.Zero, (int)Enums.SDVBigCraftable.Furnace, false), ModCore.ObjectManager.GetItem("CopperWire", 10), batteryBin, ModCore.ObjectManager.GetItem("Capacitor", 1), ModCore.ObjectManager.GetItem("ChargingStation", 1), new StardewValley.Object((int)Enums.SDVObject.CopperOre, 10), ModCore.ObjectManager.GetTool("ChainsawV1"), ModCore.ObjectManager.GetItem("MiningDrillMachineV1"), ModCore.ObjectManager.GetItem("AlloyFurnace"), new StardewValley.Object((int)Enums.SDVObject.IronBar, 100), ModCore.ObjectManager.GetItem("WaterPumpV1"), ModCore.ObjectManager.GetItem("SteamBoilerV1"), ModCore.ObjectManager.GetItem("IronPipe", 100), ModCore.ObjectManager.GetItem("SteamEngineV1"), ModCore.ObjectManager.GetItem("WindmillV1"), ModCore.ObjectManager.GetItem("WindmillV2") }); }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { if (!Config.EnableMod) { return; } frameList.Clear(); foreach (var kvp in Helper.Content.Load <Dictionary <string, string> >(frameworkPath, ContentSource.GameContent)) { var tex = Helper.Content.Load <Texture2D>(kvp.Value, ContentSource.GameContent); tex.Name = Path.GetFileName(kvp.Key); frameList.Add(new FrameData() { texture = tex, name = kvp.Key }); } framing = false; pictureDict.Clear(); if (!Directory.Exists(Path.Combine(Helper.DirectoryPath, "pictures"))) { Directory.CreateDirectory(Path.Combine(Helper.DirectoryPath, "pictures")); } if (!Directory.Exists(Path.Combine(Helper.DirectoryPath, "pictures", Constants.SaveFolderName))) { Directory.CreateDirectory(Path.Combine(Helper.DirectoryPath, "pictures", Constants.SaveFolderName)); } foreach (var f in Directory.GetDirectories(Path.Combine(Helper.DirectoryPath, "pictures", Constants.SaveFolderName))) { var folderName = Path.GetFileName(f); { List <Texture2D> textures = new List <Texture2D>(); foreach (var file in Directory.GetFiles(f, "*.png")) { string name = Path.GetFileNameWithoutExtension(file); var tex = Texture2D.FromFile(Game1.graphics.GraphicsDevice, file); tex.Name = file; textures.Add(tex); Monitor.Log($"added picture {name}"); } if (textures.Count > 0) { pictureDict.Add(folderName, textures); } } } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Config = Helper.ReadConfig <ModConfig>(); var ObjectInfo = new List <int>(Game1.objectInformation.Keys); foreach (var key in ObjectInfo) { var info = Game1.objectInformation[key].Split('/'); if (int.Parse(info[2]) < 0 && (info[3] != "Arch" || Config.YummyArtefacts)) { info[2] = Math.Max((int.Parse(info[1]) / 3), 1).ToString(); } Game1.objectInformation[key] = string.Join("/", info); } }
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { Serializer.afterLoad(); if (Game1.IsServer || Game1.IsMultiplayer || Game1.IsClient) { throw new Exception("Can't run Revitalize in multiplayer due to lack of current support!"); } //Game1.player.addItemToInventory(customObjects["Omegasis.BigTiledTest"].getOne()); Game1.player.addItemToInventory(getObjectFromPool("Omegasis.Revitalize.Furniture.Chairs.OakChair")); /* * StardewValley.Tools.Axe axe = new StardewValley.Tools.Axe(); * Serializer.Serialize(Path.Combine(this.Helper.DirectoryPath, "AXE.json"), axe); * axe =(StardewValley.Tools.Axe)Serializer.Deserialize(Path.Combine(this.Helper.DirectoryPath, "AXE.json"),typeof(StardewValley.Tools.Axe)); * //Game1.player.addItemToInventory(axe); */ }
private static void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e) { //clear these dictionaries if InternalNameToDonationName.Clear(); FishDisplayNames.Clear(); foreach (var kvp in Game1.objectInformation) { var info = kvp.Value.Split('/'); var fishName = info[0]; if (info[3].Contains("-4")) { FishIDs.Add(kvp.Key); InternalNameToDonationName.Add(fishName, fishName.Replace(" ", String.Empty)); FishDisplayNames.Add(fishName.Replace(" ", String.Empty), info[4]); } } }