using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Xna.Framework; using StardewValley; using StardewValley.Characters; namespace StardustCore.Events { public static class EventHelperExtensions { /// /// Creates the event string to add the object to the player's inventory. /// /// public static void addObjectToPlayersInventory(this EventHelper EventHelper,int ParentSheetIndex, int Amount=1, bool MakeActiveObject=false) { StringBuilder b = new StringBuilder(); b.Append("Omegasis.EventFramework.AddObjectToPlayersInventory "); b.Append(ParentSheetIndex); b.Append(" "); b.Append(Amount); b.Append(" "); b.Append(MakeActiveObject); EventHelper.add(b); } public static void ViewportLerp(this EventHelper EventHelper, Point NewPosition, double Speed) { StringBuilder b = new StringBuilder(); b.Append("Omegasis.EventFramework.ViewportLerp "); b.Append(NewPosition.X); b.Append(" "); b.Append(NewPosition.Y); b.Append(" "); b.Append(Speed); EventHelper.add(b); } public static void ViewportLerpTile(this EventHelper EventHelper, Point NewTilePosition, double Speed) { StringBuilder b = new StringBuilder(); b.Append("Omegasis.EventFramework.ViewportLerp "); b.Append(NewTilePosition.X*Game1.tileSize); b.Append(" "); b.Append(NewTilePosition.Y*Game1.tileSize); b.Append(" "); b.Append(Speed); EventHelper.add(b); } /// /// Lerps the camera an offset tile amount. /// /// /// /// How many frames (aka update ticks) it takes to finish. Aka 60~=1 second public static void ViewportLerpTileOffset(this EventHelper EventHelper, Point NewTilePositionOffset, int Frames=60,bool Concurrent=false) { StringBuilder b = new StringBuilder(); b.Append("Omegasis.EventFramework.ViewportLerp "); b.Append((NewTilePositionOffset.X * Game1.tileSize)); b.Append(" "); b.Append((NewTilePositionOffset.Y * Game1.tileSize)); b.Append(" "); b.Append(Frames); b.Append(" "); b.Append(Concurrent); EventHelper.add(b); } /// /// Creates the code to add in a junimo actor at the given location. /// /// /// /// /// public static void AddInJunimoActor(this EventHelper EventHelper,string ActorName,Vector2 Position,Color Color) { StringBuilder b = new StringBuilder(); b.Append("Omegasis.EventFramework.AddInJunimoActor "); b.Append(ActorName); b.Append(" "); b.Append(Position.X); b.Append(" "); b.Append(Position.Y); b.Append(" "); b.Append(Color.R); b.Append(" "); b.Append(Color.G); b.Append(" "); b.Append(Color.B); EventHelper.add(b); } } }