metauni / metaboard

Multiplayer drawing boards for sharing knowledge in Roblox.
Mozilla Public License 2.0
28 stars 6 forks source link

Board-specific default colours and per-board drawing tool state #42

Closed sheepish12 closed 1 year ago

sheepish12 commented 2 years ago

Board-specific default colours

Currently, the default colour for pen A and the default colour for pen B can be set with the two settings in common/Config.lua (Config.Drawing.Defaults.PenXColor). This configuration is global, which is a problem since you might not want every board to have the same two default colours. Some boards look better with white pen whereas some look better with black pen, for example.

As a solution, I propose the addition of optional configuration StringValues Board.DefaultPenAColor and Board.DefaultPenBColor. These should be set to a name of one of the TextButtons under BoardGui.Toolbar.Colors (which each have a name representing a colour). When you open some board for the first time, your pen colours should be set to its default colours.

Per-board drawing tool state

This requires a larger change in behaviour. Currently, when you open a board, none of your drawing tools are modified. With my proposal, pen colour is modified upon first opening a board. Along with this, it would make sense for pen colour to be saved per-board so that when you open some board, your pen colours are set to what they were the last time you had that board open.

This leads to an additional question: should the entire state of your drawing tools be stored per-board instead of globally rather than just the pen colours?

catgirlinspace commented 2 years ago

As a solution, I propose the addition of optional configuration StringValues Board.DefaultPenAColor and Board.DefaultPenBColor.

why not use attributes for this?

sheepish12 commented 2 years ago

@madelinecatgirl My only reason is to stay consistent with current user configuration, which uses value objects over attributes

blinkybool commented 1 year ago

I think the per-board default color config was a good idea, but I think giving each board a different state has become more of a nuisance than it has helped. Seminars/lectures usually take place across multiple boards, and so using anything other than the white pen at the default size means you have to reconfigure it every time you move onto a new board.

Another consideration is that global tool state is the only thing that makes sense for VR. There's not really a concept of selecting a board to write on, you just walk around with your pen drawing on any board.

I think the simplest solution is to return to global tool state + global config, and just not have black and white boards in the same world.

blinkybool commented 1 year ago

Done.