evolve icon indicating copy to clipboard operation
evolve copied to clipboard

Add settings tab

Open Xandaros opened this issue 12 years ago • 2 comments

It contains settings for evolve, rather than something gmod related like the sandbox tab. Plugins are able to register their own settings.

We might want to group these settings, similar to the permissions on the rank tab.

Plugins may be allowed to register their own groups, as well.

This would be handy for plugins like overwriting playermodel color with rank color, as Frankess suggested.

Xandaros avatar Jan 16 '13 11:01 Xandaros

I like this idea. It reminds me of the old Exsto settings menu, and maybe you could take a leaf out of Prefan's book in implementing one. (to enable/disable plugins, etc.) You could also make this change the colours Evolve uses. (instead of just the old evolve.colors.blue/red/white, these could be changed.)

Mors-Quaedam avatar Jan 18 '13 18:01 Mors-Quaedam

I'm currently working on a settings panel inspired by those found in JetBrains Products. Mind the mess visually and in the code because I've been hacking away at it for about a week or two -- I've changed a lot about its own internal structure and it's still changing as it expands to meet all the needs of evolve and other potential plugins. So far things are going alright. It currently looks like this: Work In Progress Settings Panel Featured: I relocated the Sandbox tab to be auto-generated by the plugin registration.

It currently supports the following features:

  • Saving/Loading this is kinda a no-brainer, but, settings need to be saved. They are currently only saved on the server.
  • Networking if an admin changes the settings, the settings are saved server-side and then the updated settings are rebroadcast to clients. Upon connection clients automatically request the current settings.
  • Privileges they're kind of broad at the moment. They're broken up into: Ability to view settings page, Ability to modify all settings, Ability to save settings to the server.
  • Plugin Integration plugins now have the ability to specify a table (of tables) of their own settings that will automatically be registered. For now the settings are limited to being one of a few pre-existing types. Examples are here and here.

As you could imagine I had to do a lot of heavy lifting around the framework. The nature and complexity of the settings panel demands that ev_menu be a toggle (which I am currently achieving with a bind) for things like string editing or typing in specific values for NumSliders. This strays a bit from the original nature of evolve being just a pop-in, get what you need done, then hide again solution. Unfortunately, I couldn't envision a better way of doing this that didn't place the burden of every plugin implementing its own settings page layout manually. That's why I'm posting this here instead of just presenting a massive pull request later, so that everyone involved can weigh in so that I can make things easier for everyone else involved.

EntranceJew avatar Sep 28 '14 14:09 EntranceJew