Skip to content

Conversation

@Fildrance
Copy link
Contributor

@Fildrance Fildrance commented Jul 26, 2025

About the PR

Refactored RadialMenuOption and related SimpleRadialMenu code to accept not just sprite for texture as icon for radial menu, but also entity or entity prototype id for SpriteView. That greatly extends scenarios where SimpleRadialMenu can be used, while leaving convinent API.

GhostRoleRadioBoundUserInterface and related xaml is a victim that got into crossfire.

Changeling menu also was replaced with SimpleRadialMenu and now selected character is highlighted in menu.

Why / Balance

Changeling transformation required SpriteView and did custom view for that, then pAI emotes demanded some, so thats basically planned refactor.

Technical details

RadialMenuEntityIconSpecifier type can be used to further extend controls which can be placed as icons inside radial menu button. Even tho usage of empty abstract class is iffy, current implementation and overloads on RadialMenuEntityIconSpecifier provide best UX for developers i think.
As side effect of refactor - RadialMenuTextureButtonBase no longer is derived from TextureButton so all tree of controls derived from it got renamed too.
Replaced changeling transform menu with SimpleRadial.

Media

lol-emotes.webm
image

Requirements

Breaking changes

renamings:
RadialMenuOption -> RadialMenuOptionBase (RadialMenuOption.Sprite was replaced by RadialMenuOptionBase.IconSpecifier, use RadialMenuIconSpecifier.With static methods to replace old code)
RadialMenuActionOption -> RadialMenuActionOptionBase
RadialMenuTextureButtonBase -> RadialMenuButtonBase (!IMPORTANT! now is derived from BaseButton so texture template properties are removed, please if you are using any derived class manually - put TextureRect control inside to fix it)
RadialMenuTextureButton -> RadialMenuButton
RadialMenuTextureButtonWithSector -> RadialMenuButtonWithSector

Content.Client/Ghost/GhostRoleRadioMenu.xaml / xaml.cs and Content.Client/Changeling/Transform/ChangelingTransformMenu.xaml / xaml.cs were removed

Changelog

@PJBot PJBot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. Changes: UI Changes: Might require knowledge of UI design or code. labels Jul 26, 2025
@github-actions github-actions bot added the size/M Denotes a PR that changes 100-999 lines. label Jul 26, 2025
@Fildrance Fildrance added P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. D2: Medium Difficulty: A good amount of codebase knowledge required. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. A: Core Tech Area: Underlying core tech for the game and the Github repository. and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Jul 26, 2025
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 8, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Aug 8, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 8, 2025
@Fildrance Fildrance requested a review from chromiumboy August 20, 2025 17:18
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 21, 2025
@github-actions
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link
Contributor

@chromiumboy chromiumboy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just some minor stuff from me

@PJBot PJBot added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Sep 2, 2025
@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Sep 2, 2025
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Sep 9, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Sep 9, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link
Contributor

@chromiumboy chromiumboy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I forgot about this. Changes have my approval. It can be merged once that conflict is resolved

@chromiumboy chromiumboy removed the S: Awaiting Changes Status: Changes are required before another review can happen label Sep 10, 2025
@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Sep 10, 2025
@Fildrance Fildrance merged commit 35d69e0 into space-wizards:master Sep 10, 2025
10 checks passed
@Fildrance Fildrance changed the title feat: SimpleRadial menu support for sprite-view and extendability feat: SimpleRadial menu support for sprite-view and extensibility Sep 10, 2025
@Fildrance Fildrance deleted the feature/sprite-view-for-simple-radial branch September 10, 2025 08:11
sleepyyapril added a commit to TheDenSS14/TheDen that referenced this pull request Oct 18, 2025
space-wizards/space-station-14#32653
space-wizards/space-station-14#34639
space-wizards/space-station-14#36486
space-wizards/space-station-14#39223

tested emotes

:cl: Fildrance, SaphireLattice, eoineoineoin, sleepyyapril
- tweak: The RCD, RPD, card hand selection, modsuit clothing picker,
hardlight bow ammo selector, and emotes radial menus have a new look!
- fix: The RPD will no longer show RCD popups when selecting things or
with charge updates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: Core Tech Area: Underlying core tech for the game and the Github repository. Changes: UI Changes: Might require knowledge of UI design or code. D2: Medium Difficulty: A good amount of codebase knowledge required. P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. size/M Denotes a PR that changes 100-999 lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants