/// <summary>Raised after the game state is updated (≈60 times per second).</summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void OnUpdateTicked(object sender, UpdateTickedEventArgs e) { // Replaces the game's warp code with my own! if (Context.IsWorldReady && e.IsMultipleOf(8)) { foreach (var action in Game1.delayedActions) { var afterFadeFunction = action.afterFadeBehavior; if (afterFadeFunction != null) { WarpOverride newWarp = null; switch (afterFadeFunction.Method.Name) { case "totemWarpForReal": newWarp = new TotemWarpOverride(afterFadeFunction.Target); break; case "wandWarpForReal": newWarp = new WandWarpOverride(); break; case "obeliskWarpForReal": newWarp = new ObeliskWarpOverride(afterFadeFunction.Target); break; } if (newWarp != null) { action.afterFadeBehavior = newWarp.DoWarp; } } } } }
/** * Replaces the game's warp code with my own! **/ private void InterceptWarps(object sender, EventArgs e) { if (!Context.IsWorldReady) { return; } foreach (var action in Game1.delayedActions) { var afterFadeFunction = action.afterFadeBehavior; if (afterFadeFunction != null) { WarpOverride newWarp = null; switch (afterFadeFunction.Method.Name) { case "totemWarpForReal": newWarp = new TotemWarpOverride(afterFadeFunction.Target); break; case "wandWarpForReal": newWarp = new WandWarpOverride(); break; case "obeliskWarpForReal": newWarp = new ObeliskWarpOverride(afterFadeFunction.Target); break; } if (newWarp != null) { action.afterFadeBehavior = newWarp.DoWarp; } } } }