Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3b0867b
Feature/make radial menu great again (#32653)
Fildrance Jan 23, 2025
9ede128
refactor: simple radial menu for easier creation (#34639)
Fildrance Mar 31, 2025
b5f0afd
Cleanup warnings in SimpleRadialMenu (#36690)
Tayrtahn Apr 18, 2025
4b871b8
fix: return deconstruct to the top level option of radial menu (#36486)
Fildrance Apr 18, 2025
0d3302e
feat: SimpleRadial menu support for sprite-view and more extensibilit…
Fildrance Sep 10, 2025
1316076
latest
sleepyyapril Oct 17, 2025
1916dd1
fix 2
sleepyyapril Oct 17, 2025
60e0b60
fix 3!
sleepyyapril Oct 17, 2025
9aa6fcd
working!
slarticodefast Sep 20, 2025
52407f0
Fix hardlight bow radial
sleepyyapril Oct 17, 2025
b8471dc
card stack fix
sleepyyapril Oct 17, 2025
a1be6ff
Modsuit fix
sleepyyapril Oct 17, 2025
7ca4a0f
RPD fix
sleepyyapril Oct 17, 2025
5477d62
use proper tool name (it's not always an RCD)
sleepyyapril Oct 17, 2025
fff2938
cleanup + fix modsuit equip
sleepyyapril Oct 17, 2025
ccbef5f
use prototype to avoid disappearing on entity change
sleepyyapril Oct 17, 2025
0af54e6
Getting rid of clothing interface errors. I think Den has the renamea…
SquishyEmmaaaa Jul 11, 2026
1a26425
Remove duplicate using namespace line
SquishyEmmaaaa Jul 11, 2026
9030ba4
Thingies?
SquishyEmmaaaa Jul 11, 2026
7dc3972
Changes two names of RCDMenu to RPDMenu to fix errors - Using the let…
SquishyEmmaaaa Jul 11, 2026
54a5fe2
Huh. How was that missing?
SquishyEmmaaaa Jul 11, 2026
065e6ac
Revert "RPD fix"
SquishyEmmaaaa Jul 29, 2026
b32b35e
Revert "Huh. How was that missing?"
SquishyEmmaaaa Jul 29, 2026
af6fc8c
Rebuild RPD menu on SimpleRadialMenu
rebaserHEAD Jul 30, 2026
7e40fdd
Radial port fixups: ammo selector loc key, emote menu cleanup
rebaserHEAD Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions Content.Client/Chat/UI/EmotesMenu.xaml

This file was deleted.

116 changes: 0 additions & 116 deletions Content.Client/Chat/UI/EmotesMenu.xaml.cs

This file was deleted.

51 changes: 42 additions & 9 deletions Content.Client/Ghost/GhostRoleRadioBoundUserInterface.cs
Original file line number Diff line number Diff line change
@@ -1,25 +1,58 @@
using Content.Client.UserInterface.Controls;
using Content.Shared.Ghost.Roles;
using Content.Shared.Ghost.Roles.Components;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;

namespace Content.Client.Ghost;

public sealed class GhostRoleRadioBoundUserInterface : BoundUserInterface
public sealed class GhostRoleRadioBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey)
{
private GhostRoleRadioMenu? _ghostRoleRadioMenu;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;

public GhostRoleRadioBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
IoCManager.InjectDependencies(this);
}
private SimpleRadialMenu? _ghostRoleRadioMenu;

protected override void Open()
{
base.Open();

_ghostRoleRadioMenu = this.CreateWindow<GhostRoleRadioMenu>();
_ghostRoleRadioMenu.SetEntity(Owner);
_ghostRoleRadioMenu.SendGhostRoleRadioMessageAction += SendGhostRoleRadioMessage;
_ghostRoleRadioMenu = this.CreateWindow<SimpleRadialMenu>();

// The purpose of this radial UI is for ghost role radios that allow you to select
// more than one potential option, such as with kobolds/lizards.
// This means that it won't show anything if SelectablePrototypes is empty.
if (!EntMan.TryGetComponent<GhostRoleMobSpawnerComponent>(Owner, out var comp))
return;

var list = ConvertToButtons(comp.SelectablePrototypes);

_ghostRoleRadioMenu.SetButtons(list);
}

private IEnumerable<RadialMenuOptionBase> ConvertToButtons(List<ProtoId<GhostRolePrototype>> protoIds)
{
var list = new List<RadialMenuOptionBase>();
foreach (var ghostRoleProtoId in protoIds)
{
// For each prototype we find we want to create a button that uses the name of the ghost role
// as the hover tooltip, and the icon is taken from either the ghost role entityprototype
// or the indicated icon entityprototype.
if (!_prototypeManager.Resolve(ghostRoleProtoId, out var ghostRoleProto))
continue;

var option = new RadialMenuActionOption<ProtoId<GhostRolePrototype>>(SendGhostRoleRadioMessage, ghostRoleProtoId)
{
ToolTip = Loc.GetString(ghostRoleProto.Name),
// pick the icon if it exists, otherwise fallback to the ghost role's entity
IconSpecifier = ghostRoleProto.IconPrototype != null
&& _prototypeManager.Resolve(ghostRoleProto.IconPrototype, out var iconProto)
? RadialMenuIconSpecifier.With(iconProto)
: RadialMenuIconSpecifier.With(ghostRoleProto.EntityPrototype)
};
list.Add(option);
}

return list;
}

private void SendGhostRoleRadioMessage(ProtoId<GhostRolePrototype> protoId)
Expand Down
8 changes: 0 additions & 8 deletions Content.Client/Ghost/GhostRoleRadioMenu.xaml

This file was deleted.

105 changes: 0 additions & 105 deletions Content.Client/Ghost/GhostRoleRadioMenu.xaml.cs

This file was deleted.

64 changes: 0 additions & 64 deletions Content.Client/RCD/RCDMenu.xaml

This file was deleted.

Loading
Loading