wiremod / wire

Garry's Mod add-on that allows users to wire up components in order to make more elaborate automatic and user-controlled contraptions.
http://www.wiremod.com
Apache License 2.0
554 stars 332 forks source link

Reduce bloat from cheeze button models #2918

Closed marchc1 closed 8 months ago

marchc1 commented 11 months ago

Removes about four megabytes from the file size. All of the buttons were previously their own entirely separate model. All buttons except for:

were replaced with blank models. Added logic in wireshared to handle backwards compatibility with Advdupe, Duplicator, Tool ghosts (except advdupe2), spawnicons, etc...

thegrb93 commented 11 months ago

I think it would be better if we had the multiple .mdl files using the same vtx files but different materials rather than using lua to hack the materials.

thegrb93 commented 11 months ago

Skins are also an option, but also requires some lua hack for compatibility.

marchc1 commented 11 months ago

I think it would be better if we had the multiple .mdl files using the same vtx files but different materials rather than using lua to hack the materials.

Skins are also an option, but also requires some lua hack for compatibility.

@thegrb93 As far as "multiple mdl files using the same vtx files", I didn't know that was possible and it isn't a bad idea. But regardless of what we do, if we want backwards compatibility, we're going to have to do something lua side. This is probably the least-effort option (and even this took a couple hours).

This is also a kind of temporary solution because we were talking about having buttons draw using render targets to remove the need for those textures + give the ability to create custom buttons. I mean some of these buttons are stupid specific (coolant, compile, muffin, etc...), it would be nice to provide customization options. I tried to go with the least amount of effort while also putting some of the infrastructure there to support these new hypothetical render-target based buttons.

For any concerns over RT performance, we tried making several thousand 256x256 textures and it barely made a dent in memory and didn't crash anything. So with some restraints similar to text screen render-targets, it should work fine. (Obviously we should never have anywhere close to that many different button textures at once, it was an exaggerated stress-test)

marchc1 commented 11 months ago

Actually, I might close this until I finish the rendertarget PR instead, then making a new PR when I'm done with that @thegrb93

thegrb93 commented 11 months ago

RT is not a great solution since gmod's material system is so unreliable. I don't know how I feel able it.

marchc1 commented 11 months ago

RT is not a great solution since gmod's material system is so unreliable. I don't know how I feel able it.

How is it unreliable?

github-actions[bot] commented 10 months ago

This pull request has been marked as stale as there haven't been any changes in the past month. It will be closed in 15 days.