using StardewModdingAPI; using StardewModdingAPI.Events; using StardewValley; using StardewValley.GameData.Tools; namespace FirstMod; internal sealed class ModEntry : Mod { public override void Entry(IModHelper helper) { helper.Events.Player.Warped += OnWarp; helper.Events.GameLoop.DayStarted += OnDayStarted; } private void OnDayStarted(object? sender, DayStartedEventArgs e) { Game1.toolData.TryGetValue("SteelAxe", out var toolData); // UpgradeLevel (enum): level of tool // ConventionalUpgradeFrom (string): (T)Id of previous level tool // Monitor.Log( // $"some toolData: {toolData?.Name}, {toolData?.ClassName}, {toolData?.UpgradeLevel}, {toolData?.ConventionalUpgradeFrom}", // LogLevel.Debug); // Monitor.Log( // $"some sprite ToolDate: {toolData?.Texture}, {toolData?.SpriteIndex}, {toolData?.MenuSpriteIndex}", // LogLevel.Debug); // Monitor.Log($"UpgradeFrom length: {toolData?.UpgradeFrom}", LogLevel.Debug); Monitor.Log("Attempting to add 'GalaxyAxe'", LogLevel.Debug); var toolUpgradeData = new List { new() { Price = 1000000, RequireToolId = "(T)IridiumAxe", TradeItemId = "(0)896", TradeItemAmount = 3 } }; Monitor.Log(toolUpgradeData[0].Price.ToString(), LogLevel.Debug); var galaxyAxe = new ToolData { ClassName = "Axe", Name = "GalaxyAxe", DisplayName = "Galaxy Axe", Description = "Galaxy Axe is a galaxy axe.", Texture = "TileSheets\\tools", SpriteIndex = 203, MenuSpriteIndex = 229, UpgradeLevel = 5, ConventionalUpgradeFrom = "IridiumAxe", UpgradeFrom = toolUpgradeData }; Game1.toolData.Add("GalaxyAxe", galaxyAxe); Monitor.Log("'GalaxyAxe' added!", LogLevel.Debug); // this.Monitor.Log("All toolData keys are listed below", LogLevel.Info); // foreach (KeyValuePair pair in Game1.toolData) // { // this.Monitor.Log($"{pair.Key}", LogLevel.Debug); // } } private void OnWarp(object? sender, WarpedEventArgs e) { Monitor.Log($"Player warped to {e.NewLocation.Name}", LogLevel.Debug); } }