QOL: Actions be divided into categories such that holding RMB completes only the same category of action as the initial action

KeySmasher

Farmhand
Case in point, you made it so that holding RMB no longer picks up the crab pots if the action started out as collecting from them. Lets shift all right-click actions into categories such that you are either collecting from machines (crab pots included), harvesting crops (which may use the scythe as needed), configuring an item (such as sign images and coop/barn animal door state), and shaking trees. This way, we don't run into an issue collecting jelly with a tool selected and accidentally changing a picture sign near by to hold the image of that tool. Releasing the RMB would allow a new action category to be initiated depending on the first use of the RMB when pressed again. I know of no actions that require holding the LMB so everything we do with that which doesn't involve a UI (like fishing) should still work as a single click and not require action categories.
 

KeySmasher

Farmhand
I do not know code at all but would this be possible at all in stardew?
Sure it is. Actions are methods in a class for the character and the character has many properties. An additional property of an integer for currentAction can be set by any method once the action begins with holding the right mouse button. When releasing the right mouse button, this value is set to 0. A list of actions amounts to a controlled list of categories such that when right clicking to trigger against a chest the property is set to a value assigned for "interacting" or "opening container". These values can be enumerated as words even though they are stored as integers so an enumeration of {"none", "petting", "opening", "collecting"} will have the values {0..3} and the type of action triggered by each object would be determined by the object. A priority can then be placed on the highest value having the highest priority so if multiple objects overlap or are within range, the one with the highest enumerated value would become the priority and they don't all trigger together or randomly. This allows the developer to control what is important, and the player to have knowledge on what to expect. So if you start picking up eggs with right click, your action will be set to "collecting" and you won't attempt to pet a sleeping chicken until you release the right mouse button and try again on a chicken. This also means that you can open chests while a sleeping chicken sits on your tile and you know it will open the chest every time.

For the record, I have not seen any code from the game and am presently making assumptions about how the player characters were defined in game code, but for anything that is possible, it also means that what is done differently can be redone.
 
Last edited:
Top