Facepunch / sbox-issues

175 stars 12 forks source link

Bring LibEvents to base S&box #5650

Closed yuberee closed 4 months ago

yuberee commented 4 months ago

For?

S&Box

What can't you do?

I'd like for this library: https://github.com/Facepunch/sbox-libevents to be in S&box by default I can see it being used in every game, as it's also better than how we handled events before.

What have you tried?

We can use C# events and delegates but I feel like they can be a hurdle for new developers to understand, plus having attributes to handle events is way more convenient as you don't have to manually subscribe events

Additional context

I'm not sure what the plan is for Facepunch official libraries, to me it seems like most Facepunch libraries can just be in base s&box. You could make an argument that stuff like the terrain tool should be a library too, but that's in s&box by default and I think that's good.

Metapyziks commented 4 months ago

A big benefit of libraries at the moment is we can change the API without breaking your projects, since you can control when you upgrade to the latest version. If we do move things like this into base, it should be after we're sure they've matured enough to the point where we're 99% sure of the API.

yuberee commented 4 months ago

That sounds reasonable, I guess the best user experience would be having a second page when creating a new project where you can select libraries to add to your project, perhaps with the Facepunch ones enabled by default.