示例#1
0
 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);
     }
 }
示例#2
0
        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");
            }
        }
示例#3
0
 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);
     }
 }