using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using StardewModdingAPI.Inheritance; using StardewValley; using StardewValley.Menus; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StardewModdingAPI.Events { public class EventArgsKeyboardStateChanged : EventArgs { public EventArgsKeyboardStateChanged(KeyboardState priorState, KeyboardState newState) { NewState = newState; NewState = newState; } public KeyboardState NewState { get; private set; } public KeyboardState PriorState { get; private set; } } public class EventArgsKeyPressed : EventArgs { public EventArgsKeyPressed(Keys keyPressed) { KeyPressed = keyPressed; } public Keys KeyPressed { get; private set; } } public class EventArgsControllerButtonPressed : EventArgs { public EventArgsControllerButtonPressed(PlayerIndex playerIndex, Buttons buttonPressed) { PlayerIndex = playerIndex; ButtonPressed = buttonPressed; } public PlayerIndex PlayerIndex; public Buttons ButtonPressed { get; private set; } } public class EventArgsControllerButtonReleased : EventArgs { public EventArgsControllerButtonReleased(PlayerIndex playerIndex, Buttons buttonReleased) { PlayerIndex = playerIndex; ButtonReleased = buttonReleased; } public PlayerIndex PlayerIndex; public Buttons ButtonReleased { get; private set; } } public class EventArgsMouseStateChanged : EventArgs { public EventArgsMouseStateChanged(MouseState priorState, MouseState newState) { NewState = newState; NewState = newState; } public MouseState NewState { get; private set; } public MouseState PriorState { get; private set; } } public class EventArgsClickableMenuChanged : EventArgs { public EventArgsClickableMenuChanged(IClickableMenu priorMenu, IClickableMenu newMenu) { NewMenu = newMenu; PriorMenu = priorMenu; } public IClickableMenu NewMenu { get; private set; } public IClickableMenu PriorMenu { get; private set; } } public class EventArgsGameLocationsChanged : EventArgs { public EventArgsGameLocationsChanged(List newLocations) { NewLocations = newLocations; } public List NewLocations { get; private set; } } public class EventArgsLocationObjectsChanged : EventArgs { public EventArgsLocationObjectsChanged(SerializableDictionary newObjects) { NewObjects = newObjects; } public SerializableDictionary NewObjects { get; private set; } } public class EventArgsCurrentLocationChanged : EventArgs { public EventArgsCurrentLocationChanged(GameLocation priorLocation, GameLocation newLocation) { NewLocation = newLocation; PriorLocation = priorLocation; } public GameLocation NewLocation { get; private set; } public GameLocation PriorLocation { get; private set; } } public class EventArgsFarmerChanged : EventArgs { public EventArgsFarmerChanged(Farmer priorFarmer, Farmer newFarmer) { NewFarmer = NewFarmer; PriorFarmer = PriorFarmer; } public Farmer NewFarmer { get; private set; } public Farmer PriorFarmer { get; private set; } } public class EventArgsInventoryChanged : EventArgs { public EventArgsInventoryChanged(List inventory, List changedItems) { Inventory = inventory; Added = changedItems.Where(n => n.ChangeType == ChangeType.Added).ToList(); Removed = changedItems.Where(n => n.ChangeType == ChangeType.Removed).ToList(); QuantityChanged = changedItems.Where(n => n.ChangeType == ChangeType.StackChange).ToList(); } public List Inventory { get; private set; } public List Added { get; private set; } public List Removed { get; private set; } public List QuantityChanged { get; private set; } } public class EventArgsLevelUp : EventArgs { public enum LevelType { Combat, Farming, Fishing, Foraging, Mining, Luck } public EventArgsLevelUp(LevelType type, Int32 newLevel) { Type = type; NewLevel = newLevel; } public LevelType Type { get; private set; } public Int32 NewLevel { get; private set; } } public class EventArgsIntChanged : EventArgs { public EventArgsIntChanged(Int32 priorInt, Int32 newInt) { NewInt = NewInt; PriorInt = PriorInt; } public Int32 NewInt { get; private set; } public Int32 PriorInt { get; private set; } } public class EventArgsStringChanged : EventArgs { public EventArgsStringChanged(String priorString, String newString) { NewString = newString; PriorString = priorString; } public String NewString { get; private set; } public String PriorString { get; private set; } } public class EventArgsCommand : EventArgs { public EventArgsCommand(Command command) { Command = command; } public Command Command { get; private set; } } }