コード例 #1
0
 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)
         }
     };
 }
コード例 #2
0
        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}");
            //}
        }
コード例 #3
0
        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);
                        }
                    }
                }
            }
        }
コード例 #4
0
ファイル: ModEntry.cs プロジェクト: quizyy/StardewValleyMods
        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);
        }
コード例 #5
0
        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"),
            });
        }
コード例 #6
0
 private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)
 {
     if (!Config.EnableMod)
     {
         return;
     }
 }
コード例 #7
0
ファイル: ModEntry.cs プロジェクト: mjSurber/FarmHouseRedone
        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());
            }
        }
コード例 #8
0
 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;
 }
コード例 #9
0
 private void OnSaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)
 {
     if (Context.IsMainPlayer)
     {
         session = GetSessionSaveData();
         InitLocationProfiles();
         InitLPsDataOnLoad();
     }
 }
コード例 #10
0
 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.");
 }
コード例 #11
0
        /*****************
        ** Save Loaded **
        ******************/
        private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)
        {
            UpdateSelectedLanguage(); //get language code
            LoadContentPacks();

            DrawInTicketStation();

            RemoveInvalidLocations();
        }
コード例 #12
0
 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();
     }
 }
コード例 #13
0
 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;
 }
コード例 #14
0
        private static void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)
        {
            int id = PufferChickID;

            if (LegendaryFish.ContainsKey(id))
            {
                return;
            }
            LegendaryFish.Add(id, ModEntry.PufferChickName);
        }
コード例 #15
0
        /// <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();
        }
コード例 #16
0
        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();
        }
コード例 #17
0
        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);
                        }
                    }
                }
            }
        }
コード例 #18
0
 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);
         }
     }
 }
コード例 #19
0
 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");
     }
 }
コード例 #20
0
ファイル: ModEntry.cs プロジェクト: quizyy/StardewValleyMods
 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);
         }
     }
 }
コード例 #21
0
 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;
         }
     }
 }
コード例 #22
0
        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");
        }
コード例 #23
0
        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");
        }
コード例 #24
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;
     }
 }
コード例 #25
0
        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"
            });
        }
コード例 #26
0
        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")
            });
        }
コード例 #27
0
        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);
                    }
                }
            }
        }
コード例 #28
0
        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);
            }
        }
コード例 #29
0
        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);
             */
        }
コード例 #30
0
        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]);
                }
            }
        }