View Full Version : Disable shuffle

01-15-2017, 04:10 AM
There are cases where shuffling doesn't make sense for objects, especially for objects with multiple states and especially since the shuffling gesture (shaking an object while grabbing it) is easily performed accidentally when positioning larger objects precisely.


Add a member variable for controlling shuffling behavior.

bool Object.allowShuffle / bool Object.disableShuffle

Whichever naming convention you prefer the value of true and false have the implied meaning. The effect should at least be to disable the shuffle gesture and shuffle keybind by players, but could extend to removing the context menu option and possibly even disable calls to Object.shuffle() and Object.shuffleStates(), but I don't think disabling Lua calls makes much sense.

01-16-2017, 03:48 PM
+1, I use stated objects quite a bit, but the inability to turn off shuffling results in some rather wacky stuff. I actually can't think of a situation that I would even want the stated objects to shuffle (though i'm sure one example exists...).

01-17-2017, 01:34 AM
Ohh, I never realized that shaking a stated object causes this. I often noticed that an object would change states at weird moments and I had never known why :)

01-17-2017, 11:08 AM
Yep, I would definitely appreciate this! :) +1

I've had this problem while developing a paintbrush tool. Ideally the user should be able to press a number and use that brush, but the problem arrives if the user moves the tool around too quickly - then it sets it to a state they didn't intend.

01-18-2017, 05:57 PM
Thinking more, actually being able to turn off shuffling as a property on all classes of objects that you can shuffle would be nice.

There are games with decks that are set in order -- not meant to randomized. Same can be said for bags.

Being able to disable shuffling on these would make it less prone to user error in moving these things about.

01-18-2017, 06:12 PM
I agree this would be useful. I see some possible issues.

Decks stop being decks once they are emptied, so if you disabled shuffling on a deck, once you empty it that setting is gone.
Newly created decks wouldn't know if they should be shake-shuffle on or off.
Some games will want some objects to be shakable (decks) while others are not (states/bags).

The way I see it, I think the best solution is to make shakeable a toggle in the context menu (and accessible with scripting). Then if there's a game where new decks are being created but need to be shake-shuffle-off, a simple script could be used to make it happen. Then things that persist all game, like bags or stated objects, could be set as needed.