SMAPI/Install/PatchStep.txt

73 lines
2.9 KiB
Plaintext

1. Inject assembly reference, namespace: StardewModdingAPI
2.Modify class StardewValley.Game1, modify constructor method£¬insert Instructions at beginning:
newobj System.Void SMDroid.ModEntry::.ctor()
stsfld StardewValley.ModHooks StardewValley.Game1::hooks
3.Modify class StardewValley.ModHooks, inject method:
public virtual void OnGame1_Update(GameTime time);
public virtual void OnGame1_Draw(GameTime time, RenderTarget2D toBuffer);
public virtual LocalizedContentManager OnGame1_CreateContentManager(IServiceProvider serviceProvider, string rootDirectory) => null;
4.Modify class StardewValley.Game1, modify method Update(GameTime gameTime), insert Instructions at beginning:
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.1
callvirt System.Void StardewValley.ModHooks::OnGame1_Update(Microsoft.Xna.Framework.GameTime)
5.Modify class StardewValley.Game1, modify method CreateContentManager(GameTime gameTime), replace Instructions to:
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.1
ldarg.2
callvirt StardewValley.LocalizedContentManager StardewValley.ModHooks::OnGame1_CreateContentManager(System.IServiceProvider,System.String)
ret
6.Modify class StardewValley.Game1, modify method Draw(GameTime gameTime, RenderTarget2D toBuffer), modify Instructions at beginning:
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.1
ldnull
callvirt System.Void StardewValley.ModHooks::OnGame1_Draw(Microsoft.Xna.Framework.GameTime,Microsoft.Xna.Framework.Graphics.RenderTarget2D)
Optional Section
Fix back button£º
Modify class StardewValley.Game1, modify method updateAndroidMenus(), modify Instructions at beginning:
ldsfld StardewValley.InputState StardewValley.Game1::input
callvirt Microsoft.Xna.Framework.Input.GamePadState StardewValley.InputState::GetGamePadState()
Json Asset Support£º
Modify class StardewValley.Object, modify method checkForAction,insert instructions at beginning:
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.0
callvirt System.Boolean StardewValley.ModHooks::OnObject_checkForAction(StardewValley.Object)
brtrue.s -> (6) ldarg.2
ldc.i4.0
ret
modify method isIndexOkForBasicShippedCategory,replace instructions:
ldarg.0
ldc.i4 434
bne.un.s -> (5) ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldc.i4.0
ret
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.0
ldloca.s -> (0) (System.Boolean)
callvirt System.Void StardewValley.ModHooks::OnObject_isIndexOkForBasicShippedCategory(System.Int32,System.Boolean&)
ldloc.0
ret
modify method canBePlacedHere insert instructions at beginning:
ldsfld StardewValley.ModHooks StardewValley.Game1::hooks
ldarg.0
ldarg.1
ldarg.2
ldloca.s -> (1) (System.Boolean)
callvirt System.Boolean StardewValley.ModHooks::OnObject_canBePlacedHere(StardewValley.Object,StardewValley.GameLocation,Microsoft.Xna.Framework.Vector2,System.Boolean&)
brtrue.s -> (9) ldarg.1
ldloc.1
ret