コード例 #1
0
        /// <inheritdoc cref="IInputEvents.ButtonsChanged"/>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event data.</param>
        private void OnButtonsChanged(object?sender, ButtonsChangedEventArgs e)
        {
            if (!this.Config.Enabled) // don't check EnableAutomation, since overlay is still available for farmhands
            {
                return;
            }

            try
            {
                // toggle overlay
                if (Context.IsPlayerFree && this.Keys.ToggleOverlay.JustPressed())
                {
                    if (this.CurrentOverlay != null)
                    {
                        this.DisableOverlay();
                    }
                    else
                    {
                        this.EnableOverlay();
                    }
                }
            }
            catch (Exception ex)
            {
                this.HandleError(ex, "handling key input");
            }
        }
コード例 #2
0
 private void OnButtonsChanged(object sender, ButtonsChangedEventArgs args)
 {
     if (!Config.Enabled)
     {
         return;
     }
     if (Config.HotKeyCustomMessage.JustPressed())
     {
         if (!Context.IsPlayerFree)
         {
             return;
         }
         ShowReminderMenu();
     }
     else if (Config.HotKeyActivate.JustPressed())
     {
         if (RemindOnDayStart)
         {
             Deactivate();
             ReminderBody = null;
         }
         else
         {
             Activate();
         }
     }
 }
コード例 #3
0
 private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (Context.IsWorldReady &&
         Context.IsPlayerFree &&
         list.Value != null &&
         !this.list.Value.IncompatibleMultiplayerHost)
     {
         if (e.Pressed.Contains(this.config.hotkey) || this.config.hotkeyList.JustPressed())
         {
             if (Game1.activeClickableMenu != null)
             {
                 Game1.exitActiveMenu();
             }
             Game1.activeClickableMenu = new ToDoMenu(this, this.list.Value);
         }
         if (e.Pressed.Contains(this.config.overlay.hotkey) || this.config.overlay.hotkeyList.JustPressed())
         {
             if (overlay.Value != null)
             {
                 overlay.Value.Dispose();
                 overlay.Value = null;
             }
             else if (config.overlay.enabled)
             {
                 overlay.Value = new ToDoOverlay(this, list.Value);
             }
         }
     }
 }
コード例 #4
0
 private void CheckForHotkey(object sender, ButtonsChangedEventArgs e)
 {
     if (config.DropKey.JustPressed())
     {
         if (Context.IsPlayerFree)
         {
             Item item = Game1.player.CurrentItem;
             if (item != null && item.canBeDropped() && item.canBeTrashed())
             {
                 DropItem(Game1.player, item.getOne());
                 Game1.player.reduceActiveItemByOne();
             }
         }
         else if (Context.IsWorldReady && Game1.activeClickableMenu is GameMenu menu)
         {
             if (menu.GetCurrentPage() is InventoryPage invPage)
             {
                 if (CheckHeldItem((Item i) => i != null && i.canBeDropped() && i.canBeTrashed()))
                 {
                     DropItem(Game1.player, TakeHeldItem());
                 }
             }
         }
     }
 }
コード例 #5
0
 private void Input_ButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     foreach (SButton button in e.Pressed)
     {
         if (button == SButton.MouseRight)
         {
             foreach (ModData m in Data)
             {
                 foreach (Totem t in m.Totems)
                 {
                     if (Game1.player.ActiveObject?.ParentSheetIndex == JAAPIInstance.GetObjectId(t.Name))
                     {
                         Object o = Game1.player.ActiveObject;
                         try
                         {
                             Helper.Reflection.GetMethod(o, "totemWarp", true).Invoke(Game1.player);
                         }
                         catch (Exception ex)
                         {
                             Monitor1.Log($"Failed in {nameof(Input_ButtonsChanged)} while trying to invoke method 'Object.totemWarp':\n{ex}",
                                          LogLevel.Error);
                             Monitor1.Log(ex.StackTrace, LogLevel.Trace);
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
 private void OnButtonsChanged(object sender, ButtonsChangedEventArgs arg)
 {
     if (Config.ReloadKey.JustPressed())
     {
         LoadConfig();
         Monitor.Log("Reload Config", LogLevel.Trace);
     }
 }
コード例 #7
0
 /*********
 ** Private methods
 *********/
 /// <summary>Raised after the player presses any buttons on the keyboard, controller, or mouse.</summary>
 /// <param name="sender">The event sender.</param>
 /// <param name="e">The event data.</param>
 private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (this.CanToggle() && this.ToggleKey.JustPressed())
     {
         bool enabled = Game1.player.ignoreCollisions = !Game1.player.ignoreCollisions;
         this.ShowConfirmationMessage(enabled, this.ToggleKey);
     }
 }
コード例 #8
0
        /// <summary>Handle the player pressing or releasing any buttons if <see cref="ICheat.OnSaveLoaded"/> indicated input was needed.</summary>
        /// <param name="context">The cheat context.</param>
        /// <param name="e">The input event arguments.</param>
        public override void OnButtonsChanged(CheatContext context, ButtonsChangedEventArgs e)
        {
            ModConfig config = context.Config;

            if (config.FreezeTimeKey.JustPressed())
            {
                config.FreezeTime = !config.FreezeTime;
            }
        }
コード例 #9
0
        /**************************************************
        * EVENT HANDLERS
        **************************************************/

        public void OnButtonsChanged(object sender, ButtonsChangedEventArgs args)
        {
            if (!DisableUntilHPChanges && Config.temp_hide_hotkey.JustPressed())
            {
                var hudmsg = new HUDMessage(Helper.Translation.Get("do_hidden_temp"), "");
                Game1.addHUDMessage(hudmsg);
                DisableUntilHPChanges = true;
            }
        }
コード例 #10
0
ファイル: BaseOverlay.cs プロジェクト: watson81/StardewMods
        /// <inheritdoc cref="IInputEvents.ButtonsChanged"/>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event data.</param>
        private void OnButtonsChanged(object?sender, ButtonsChangedEventArgs e)
        {
            if (Context.ScreenId != this.ScreenId)
            {
                return;
            }

            this.ReceiveButtonsChanged(sender, e);
        }
コード例 #11
0
 private static void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (Context.IsWorldReady)
     {
         if (e.Pressed.Contains(Config.StashHotKey))
         {
             ItemStashing.StashItemsInNearbyChests(Config.Radius);
         }
     }
 }
コード例 #12
0
 private void OnButtonChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (e.Pressed.Contains(SButton.LeftShift) || e.Pressed.Contains(SButton.RightShift))
     {
         _shiftPressed = true;
     }
     else if (e.Released.Contains(SButton.LeftShift) || e.Released.Contains(SButton.RightShift))
     {
         _shiftPressed = false;
     }
 }
コード例 #13
0
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            if (!Context.IsPlayerFree || !Context.CanPlayerMove)
            {
                return;
            }

            if (_config.ShowMenuKey.JustPressed())
            {
                Game1.activeClickableMenu = GetSpawnMenu();
            }
        }
コード例 #14
0
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            if (Config.Keys.Reload.JustPressed())
            {
                LoadConfig();
            }

            if (Config.Keys.Toggle.JustPressed())
            {
                RegisterEvent();
            }
        }
コード例 #15
0
        private void ButtonsChanged(object?sender, ButtonsChangedEventArgs e)
        {
            if (e.Pressed.Contains(SButton.OemTilde))
            {
                Monitor.Log("Placing our portable bed.");

                Vector2      targetTile = Game1.player.GetGrabTile();
                BedFurniture bed        = Utility.fuzzyItemSearch("DecidedlyHuman.SleepAnywhereItems/Portable Bed") as BedFurniture;

                bed.TileLocation = targetTile;
                Game1.currentLocation.furniture.Add(bed);
            }
        }
コード例 #16
0
        /// <inheritdoc />
        public void OnButtonsChanged(ButtonsChangedEventArgs e)
        {
            // get keys
            SButton[] released = e.Released.Where(this.IsValidKey).ToArray();
            SButton[] held     = e.Held.Where(this.IsValidKey).ToArray();

            // apply keybind
            if (released.Any())
            {
                this.HandleButtons(released.Concat(held).ToArray());
                this.IsFinished = true;
            }
        }
コード例 #17
0
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            if (!Context.IsWorldReady || !Context.IsPlayerFree)
            {
                return;
            }

            // this is done in buttonsChanged instead of buttonPressed as recommended
            // in the documentation: https://stardewcommunitywiki.com/Modding:Modder_Guide/APIs/Input#KeybindList
            if (Config.TreeMenuKey.JustPressed())
            {
                OpenTreeMenu(Game1.currentLocation);
            }
        }
コード例 #18
0
 /// <inheritdoc/>
 public override void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (AwesomeProfessions.Config.ModKey.JustPressed())
     {
         AwesomeProfessions.EventManager.Subscribe(new ArrowPointerUpdateTickedEvent(), new TrackerRenderedHudEvent());
     }
     else if (AwesomeProfessions.Config.ModKey.GetState() == SButtonState.Released)
     {
         AwesomeProfessions.EventManager.Unsubscribe(typeof(TrackerRenderedHudEvent));
         if (!(AwesomeProfessions.EventManager.IsSubscribed(typeof(ProspectorHuntRenderedHudEvent)) || AwesomeProfessions.EventManager.IsSubscribed(typeof(ScavengerHuntRenderedHudEvent))))
         {
             AwesomeProfessions.EventManager.Unsubscribe(typeof(ArrowPointerUpdateTickedEvent));
         }
     }
 }
コード例 #19
0
 //private void OnWarped(object sender, WarpedEventArgs e)
 //{
 //    minigame.Value.OnWarped(sender, e);
 //}
 private void Input_ButtonsChanged(object sender, ButtonsChangedEventArgs e)  //this.Monitor.Log(locationName, LogLevel.Debug);
 {
     if (!Context.IsWorldReady)
     {
         return;
     }
     if (e.Pressed.Contains(SButton.F5))
     {
         UpdateConfig(false);
     }
     if (Game1.player.IsLocalPlayer)
     {
         minigame.Value.Input_ButtonsChanged(sender, e);
     }
 }
コード例 #20
0
        /// <summary>Raised after the player presses any buttons on the keyboard, controller, or mouse.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event data.</param>
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            if (!this.IsEnabled || !Context.IsPlayerFree)
            {
                return;
            }

            if (this.Keys.SummonTractor.JustPressed() && !Game1.player.isRidingHorse())
            {
                this.SummonTractor();
            }
            else if (this.Keys.DismissTractor.JustPressed() && Game1.player.isRidingHorse())
            {
                this.DismissTractor(Game1.player.mount);
            }
        }
コード例 #21
0
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            if (Game1.activeClickableMenu == null)
            {
                if (_config.ToggleShaker.JustPressed())
                {
                    _config.IsShakerActive = !_config.IsShakerActive;
                    Helper.WriteConfig(_config);

                    var message = "AutoShaker has been " + (_config.IsShakerActive ? "ACTIVATED" : "DEACTIVATED");

                    Monitor.Log(message, LogLevel.Info);
                    Game1.addHUDMessage(new HUDMessage(message, null));
                }
            }
        }
コード例 #22
0
 private void Input_ButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (!Config.EnableMod)
     {
         return;
     }
     if (Config.ResetKeys.JustPressed())
     {
         Monitor.Log($"Reloading {loadedContentPacks.Count} content pack(s)");
         foreach (var pack in loadedContentPacks)
         {
             Helper.ConsoleCommands.Trigger("patch", new string[] { "reload", pack });
         }
         ReloadSongData();
     }
 }
コード例 #23
0
ファイル: ModEntry.cs プロジェクト: drewhoener/UIInfoSuite2
 private void HandleKeyBindings(object sender, ButtonsChangedEventArgs e)
 {
     if (_modOptions != null)
     {
         if (Context.IsPlayerFree && _modOptions.OpenCalendarKeybind.JustPressed())
         {
             Helper.Input.SuppressActiveKeybinds(_modOptions.OpenCalendarKeybind);
             Game1.activeClickableMenu = new Billboard(false);
         }
         else if (Context.IsPlayerFree && _modOptions.OpenQuestBoardKeybind.JustPressed())
         {
             Helper.Input.SuppressActiveKeybinds(_modOptions.OpenQuestBoardKeybind);
             Game1.RefreshQuestOfTheDay();
             Game1.activeClickableMenu = new Billboard(true);
         }
     }
 }
コード例 #24
0
        private void assignKeybinding2(object sender, ButtonsChangedEventArgs e)
        {
            if (keybinding2Opt == null)
            {
                return;
            }

            List <SButton> all = new List <SButton>();

            foreach (var button in e.Held)
            {
                if (button.TryGetKeyboard(out Keys keys) || button.TryGetController(out _))
                {
                    all.Add(button);
                }
            }

            foreach (var button in e.Released)
            {
                bool stop = false;
                if (button.ToString() == "Escape")
                {
                    stop = true;
                    Game1.playSound("bigDeSelect");
                }
                if (!stop && (button.TryGetKeyboard(out Keys keys) || button.TryGetController(out _)))
                {
                    stop = true;
                    all.Add(button);

                    Game1.playSound("coin");
                    keybinding2Opt.Value.Keybinds[0] = new Keybind(all.ToArray());
                    keybindingLabel.String           = keybinding2Opt.Value.Keybinds[0].ToString();
                }

                if (stop)
                {
                    Mod.instance.Helper.Events.Input.ButtonsChanged -= assignKeybinding2;
                    keybinding2Opt  = null;
                    keybindingLabel = null;
                    ui.Obscured     = false;
                }

                return;
            }
        }
コード例 #25
0
        /*********
        ** Private methods
        *********/
        /// <summary>Raised after the player presses a button on the keyboard, controller, or mouse.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event data.</param>
        private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
        {
            // ignore if player hasn't loaded a save yet
            if (!Context.IsWorldReady)
            {
                return;
            }

            if (!isRolling && config.heeliesButton.JustPressed() && CanRoll())
            {
                Engage();
            }
            if (isRolling && config.heeliesButton.GetState() == SButtonState.Released)
            {
                Disengage();
                JumpToPlayer();
            }
        }
コード例 #26
0
 private void OnButtonsChanged(object sender, ButtonsChangedEventArgs e)
 {
     if (ModEntry.Config.RestartKey.JustPressed())
     {
         ModEntry.Streams = new Dictionary <string, Stream>();
         Input.ClearHeld();
         Game1.addHUDMessage(new HUDMessage("Restarting speech recognition...", HUDMessage.newQuest_type));
         ModEntry.log("Kaldi engine exited. Restarting...", LogLevel.Debug);
         this.speechEngine.Restart();
     }
     else if (ModEntry.Config.StopKey.JustPressed())
     {
         ModEntry.Streams = new Dictionary <string, Stream>();
         Input.ClearHeld();
         this.speechEngine.Exit();
         Game1.addHUDMessage(new HUDMessage("Stopped speech recognition", HUDMessage.newQuest_type));
     }
 }