public static MouseState Postfix(MouseState m, MouseState __result) { if (MultipleMiceManager.HasAttachedMouse() || !Utils.TrueIsWindowActive()) { if (Utils.IsMouseLocked() && MultipleMiceManager.HasAttachedMouse()) { return(MultipleMiceManager.GetAttachedMouseState() ?? default(MouseState)); } else { return(new MouseState(FakeMouse.X, FakeMouse.Y, 0, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released)); } } else { return(__result); } }
public override void Load() { Monitor.Log("Loading..."); Events = new Events(); //Disables FPS throttling when window is unfocused Terraria.Main.instance.InactiveSleepTime = new TimeSpan(0); //Make sure it doesnt start in borderless fullscreen Terraria.Main.screenBorderless = false; SplitScreen.Events.QuitGame += (o, e) => Terraria.Main.screenBorderless = false; toggleBorders = new ToggleBorders(); SplitScreen.Events.SecondaryLoad += delegate { //Multiple keyboard/mice keyboardManager = new MultipleKeyboardManager(); miceManager = new MultipleMiceManager(); miceManager.RegisterMice(); uiController = new UIController(keyboardManager, miceManager); Events.PreUpdate += OnPreUpdate; }; SplitScreen.Events.JoinedServer += delegate { uiController.ActivateUI(); keyboardManager.Initialize(); }; try { HarmonyInstance harmony = HarmonyInstance.Create("me.ilyaki.terrariaSplitScreen"); //Run AFTER subscribing to Events harmony.PatchAll(Assembly.GetExecutingAssembly()); }catch (Exception) { Monitor.Log("Could not patch with Harmony. This is probably because of a mod reload instead of a fresh restart"); } }
public AttachMouseUI(MultipleMiceManager miceManager) { this.miceManager = miceManager; }
public static MouseState Postfix(MouseState m, MouseState __result) { if (MultipleMiceManager.HasAttachedMouse() || !Utility.TrueIsWindowActive()) { return(((Utility.IsMouseLocked() && MultipleMiceManager.HasAttachedMouse()) ? MultipleMiceManager.GetAttachedMouseState() : null) ?? default(MouseState)); } else { return(__result); } }