diff options
-rw-r--r-- | StardewInjector/StardewHooker.cs | 190 | ||||
-rw-r--r-- | StardewInjector/StardewInjector.cs | 55 | ||||
-rw-r--r-- | StardewModdingAPI/Program.cs | 2 |
3 files changed, 0 insertions, 247 deletions
diff --git a/StardewInjector/StardewHooker.cs b/StardewInjector/StardewHooker.cs deleted file mode 100644 index dbf1c5ef..00000000 --- a/StardewInjector/StardewHooker.cs +++ /dev/null @@ -1,190 +0,0 @@ -using Microsoft.Xna.Framework; -using Mono.Cecil; -using Mono.Cecil.Cil; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using StardewModdingAPI; - -namespace StardewInjector -{ - public class Stardew_Hooker - { - private AssemblyDefinition m_vAsmDefinition = null; - private ModuleDefinition m_vModDefinition = null; - private Assembly m_vAssembly = null; - - public bool Initialize() - { - Console.WriteLine("Initiating StarDew_Injector...."); - try - { - this.m_vAsmDefinition = AssemblyDefinition.ReadAssembly(@"Stardew Valley.exe"); - this.m_vModDefinition = this.m_vAsmDefinition.MainModule; - return true; - } - catch (Exception ex) - { - Log.Error(ex); - return false; - } - } - - public bool Finalize() - { - Console.WriteLine("Finalizing StarDew_Injector...."); - try - { - if (this.m_vAsmDefinition == null) - return false; - - using (MemoryStream mStream = new MemoryStream()) - { - // Write the edited data to the memory stream.. - this.m_vAsmDefinition.Write(mStream); - - // Load the new assembly from the memory stream buffer.. - this.m_vAssembly = Assembly.Load(mStream.GetBuffer()); - - Program.StardewAssembly = m_vAssembly; - - return true; - } - } - catch (Exception ex) - { - Log.Error(ex); - return false; - } - } - - public bool Run() - { - if (this.m_vAssembly == null) - return false; - - Console.WriteLine("Starting Stardew Valley..."); - - m_vAssembly.EntryPoint.Invoke(null, new object[] {new string[0]}); - - return true; - } - - public void ApplyHooks() - { - Console.WriteLine("Applying StarDew_Injector...."); - try - { - InjectMovementSpeed(); - - if (Config.SecondsPerTenMinutes != 7) - InjectClockScale(); - - if (Config.EnableEasyFishing) - InjectEasyFishing(); - - if (Config.EnableAlwaysSpawnFishingBubble) - InjectMoreBubbles(); - - /* - if (Config.EnableDebugMode) - InjectDebugMode(); - */ - } - catch (Exception ex) - { - Log.Error(ex); - } - - } - - private void InjectDebugMode() - { - this.m_vModDefinition.FindMethod("StardewValley.Program::.cctor") - .FindSetField("releaseBuild").Previous() - .ReplaceCreate(OpCodes.Ldc_I4_0); - - Console.WriteLine("Enabled debug mode."); - } - - private void InjectMoreBubbles() - { - this.m_vModDefinition.FindMethod("StardewValley.GameLocation::performTenMinuteUpdate") - .FindLoadField("currentLocation").Next(i => i.ToString().Contains("NextDouble")).Next() - .ReplaceCreate(OpCodes.Ldc_R8, 1.1); - - Console.WriteLine("Forced each area to always spawn a fishing bubble."); - } - - private void InjectEasyFishing() - { - this.m_vModDefinition.FindMethod("StardewValley.Menus.BobberBar::update") - .FindLoadConstant(694) - .Next(i => i.OpCode == OpCodes.Ldc_R4) - .ReplaceCreate(OpCodes.Ldc_R4, 0.001f) - .Next(i => i.OpCode == OpCodes.Ldc_R4) - .ReplaceCreate(OpCodes.Ldc_R4, 0.001f); - - Console.WriteLine("Replaced fish escape constants for all bobbers & bobber id 694 with 0.001, slowing it down."); - } - - private void InjectClockScale() - { - int timeScale = Config.SecondsPerTenMinutes; - timeScale *= 1000; - - this.m_vModDefinition.FindMethod("StardewValley.Game1::UpdateGameClock") - .FindLoadConstant(7000f) - .ReplaceCreate(OpCodes.Ldc_R4, timeScale*1.0f) - .Next(i => i.OpCode == OpCodes.Ldc_R4 && (float) i.Operand == 7000f) - .ReplaceCreate(OpCodes.Ldc_R4, timeScale*1.0f) - .Next(i => i.OpCode == OpCodes.Ldc_I4 && (int) i.Operand == 7000) - .ReplaceCreate(OpCodes.Ldc_I4, timeScale); - - Console.WriteLine("Updated lighting for new timescale ({0}).", timeScale); - } - - private void InjectMovementSpeed() - { - - - if (Config.EnableTweakedDiagonalMovement) - { - this.m_vModDefinition.FindMethod("StardewValley.Farmer::getMovementSpeed") - .FindLoadField("movementDirections").Next(i => i.OpCode == OpCodes.Ldc_I4_1) - .ReplaceCreate(OpCodes.Ldc_I4_4); - - Console.WriteLine("Removed diagonal movement check."); - } - - if (Config.RunSpeed > 0) - { - this.m_vModDefinition.FindMethod("StardewValley.Farmer::getMovementSpeed") - .FindLoadField("movementDirections").Last().CreateBefore(OpCodes.Ldc_R4, (float) Config.RunSpeed).CreateAfter(OpCodes.Add); - - Console.WriteLine("Added run speed: " + Config.RunSpeed); - } - - - } - - - - private void DumpInstructionsToFile(MethodDefinition methodDefinition) - { - var fileName = string.Format("{0}.{1}.txt", methodDefinition.DeclaringType.Name, methodDefinition.Name); - - using (var stream = File.OpenWrite(Path.Combine(".", fileName))) - using (var writer = new StreamWriter(stream)) - { - var ilProcessor = methodDefinition.Body.GetILProcessor(); - for (int i = 0; i < ilProcessor.Body.Instructions.Count; i++) - writer.WriteLine((i) + ":" + ilProcessor.Body.Instructions[i]); - } - } - } -}
\ No newline at end of file diff --git a/StardewInjector/StardewInjector.cs b/StardewInjector/StardewInjector.cs deleted file mode 100644 index b67a8bc9..00000000 --- a/StardewInjector/StardewInjector.cs +++ /dev/null @@ -1,55 +0,0 @@ -using StardewModdingAPI; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StardewInjector -{ - public class StardewInjector : Mod - { - public override string Name - { - get { return "Stardew Injector"; } - } - - public override string Authour - { - get { return "Zoryn Aaron"; } - } - - public override string Version - { - get { return "1.0"; } - } - - public override string Description - { - get { return "Pulled from https://github.com/kevinmurphy678/Stardew_Injector and converted to a mod."; } - } - - public static Stardew_Hooker hooker { get; set; } - public override void Entry(params object[] objects) - { - if (objects.Length <= 0 || (objects.Length > 0 && objects[0].AsBool() == false)) - { - hooker = new Stardew_Hooker(); - hooker.Initialize(); - hooker.ApplyHooks(); - hooker.Finalize(); - - Log.Verbose("INJECTOR ENTERED"); - } - else if (objects.Length > 0 && objects[0].AsBool() == true) - { - Log.Verbose("INJECTOR LAUNCHING"); - hooker.Run(); - } - else - { - Log.Verbose("INVALID PARAMETERS FOR INJECTOR"); - } - } - } -} diff --git a/StardewModdingAPI/Program.cs b/StardewModdingAPI/Program.cs index 3e267af5..28073135 100644 --- a/StardewModdingAPI/Program.cs +++ b/StardewModdingAPI/Program.cs @@ -23,8 +23,6 @@ namespace StardewModdingAPI public static List<string> ModPaths = new List<string>(); public static List<string> ModContentPaths = new List<string>();
public static string LogPath = Path.Combine(Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "StardewValley")), "ErrorLogs"); - public static string CurrentLog { get; private set; } - public static StreamWriter LogStream { get; private set; } public static Texture2D DebugPixel { get; private set; } |