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

Porting Tool System/Interface (Imgui) #2233

Open
jason-e opened this issue Jan 7, 2025 · 0 comments
Open

Porting Tool System/Interface (Imgui) #2233

jason-e opened this issue Jan 7, 2025 · 0 comments

Comments

@jason-e
Copy link
Member

jason-e commented Jan 7, 2025

Set up a basic system that tools can be added to using Imgui as the GUI. This tool will be even more niche than the zoning tools so it can be more like an internal dev tool and doesn't have to be super polished.

We will have a handful of different tools which are each concerned with some type of entity. When a tool is selected, it will list all of that entity type with some basic info for each, an entity can be selected to teleport to it, and then some list of actions will be offered to change that entity. For example, a trigger_push could be changed to a trigger_setspeed (with custom entered speed values).

When an entity is selected, it should do something like: teleport the player near it, make the entity visible, indicate the entity in some way (pulse the entity, draw a line from the player to the entity, whatever can be worked out without too much effort), and maybe turn on ent_text for that entity.

When an entity is changed using the tool, it should probably actually create a new, separate entity and keep the old one (but disable it) so the change can easily be reverted without reloading the map. CMomentumBhopBlockFixSystem has a good example of creating an entity that copies the model from another entity.

Once necessary changes have been made to an entity (or if none needed), there will be an option to "mark as handled" to check it off the list.

Finally, after all changes are set up, the tool will be able to output a Stripper config that can be applied to the BSP with Lumper to bake in all of the changes.

(Dear)Imgui seems like a good fit for this GUI. Maybe we make a Panorama version in the future but Imgui should be much faster to get going and iterate on and is great for quick dev tools. CVProfMainPanel is one example of how to set up an Imgui window, and actually building an Imgui UI is super easy by following online examples/tutorials.

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

No branches or pull requests

1 participant