Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add settings tab #25

Open
Xandaros opened this issue Jan 16, 2013 · 2 comments
Open

Add settings tab #25

Xandaros opened this issue Jan 16, 2013 · 2 comments
Labels

Comments

@Xandaros
Copy link
Owner

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.

@Mors-Quaedam
Copy link
Contributor

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.)

@EntranceJew
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants