Merge remote-tracking branch 'upstream/stable' into ed-15-09-2025-upstream-sync
# Conflicts: # .github/CODEOWNERS # Content.Client/Overlays/StencilOverlay.cs # Content.Server/Chemistry/EntitySystems/InjectorSystem.cs # Content.Server/GameTicking/Commands/SetGamePresetCommand.cs # Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs # Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs # Content.Shared/Clothing/Components/ClothingComponent.cs # Content.Shared/Humanoid/HumanoidCharacterAppearance.cs # Content.Shared/Humanoid/SkinColor.cs # Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml
This commit is contained in:
@@ -16,6 +16,7 @@ using Content.Shared.Input;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.Audio;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Input;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controllers;
|
||||
@@ -37,6 +38,7 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged<BwoinkSyst
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
[Dependency] private readonly IClyde _clyde = default!;
|
||||
[Dependency] private readonly IUserInterfaceManager _uiManager = default!;
|
||||
[Dependency] private readonly IInputManager _input = default!;
|
||||
[UISystemDependency] private readonly AudioSystem _audio = default!;
|
||||
|
||||
private BwoinkSystem? _bwoinkSystem;
|
||||
@@ -98,15 +100,13 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged<BwoinkSyst
|
||||
_bwoinkSystem = system;
|
||||
_bwoinkSystem.OnBwoinkTextMessageRecieved += ReceivedBwoink;
|
||||
|
||||
CommandBinds.Builder
|
||||
.Bind(ContentKeyFunctions.OpenAHelp,
|
||||
InputCmdHandler.FromDelegate(_ => ToggleWindow()))
|
||||
.Register<AHelpUIController>();
|
||||
_input.SetInputCommand(ContentKeyFunctions.OpenAHelp,
|
||||
InputCmdHandler.FromDelegate(_ => ToggleWindow()));
|
||||
}
|
||||
|
||||
public void OnSystemUnloaded(BwoinkSystem system)
|
||||
{
|
||||
CommandBinds.Unregister<AHelpUIController>();
|
||||
_input.SetInputCommand(ContentKeyFunctions.OpenAHelp, null);
|
||||
|
||||
DebugTools.Assert(_bwoinkSystem != null);
|
||||
_bwoinkSystem!.OnBwoinkTextMessageRecieved -= ReceivedBwoink;
|
||||
|
||||
@@ -116,8 +116,9 @@ public sealed partial class ChatUIController : IOnSystemChanged<CharacterInfoSys
|
||||
keyword = EndDoubleQuote.Replace(keyword, "(?<!\\w)");
|
||||
}
|
||||
|
||||
// Make sure any name tagged as ours gets highlighted only when others say it.
|
||||
keyword = StartAtSign.Replace(keyword, "(?<=(?<=/name.*)|(?<=,.*\"\".*))");
|
||||
// Make sure the character's name is highlighted only when mentioned directly (eg. it's said by someone),
|
||||
// for example in 'Name Surname says, "..."' 'Name Surname' won't be highlighted.
|
||||
keyword = StartAtSign.Replace(keyword, @"(?<=(?<=^.?OOC:.*:.*)|(?<=,.*"".*)|(?<=\n.*))");
|
||||
|
||||
_highlights.Add(keyword);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace Content.Client.UserInterface.Systems.Emotes;
|
||||
[UsedImplicitly]
|
||||
public sealed class EmotesUIController : UIController, IOnStateChanged<GameplayState>
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
|
||||
@@ -133,12 +132,12 @@ public sealed class EmotesUIController : UIController, IOnStateChanged<GameplayS
|
||||
_menu = null;
|
||||
}
|
||||
|
||||
private IEnumerable<RadialMenuOption> ConvertToButtons(IEnumerable<EmotePrototype> emotePrototypes)
|
||||
private IEnumerable<RadialMenuOptionBase> ConvertToButtons(IEnumerable<EmotePrototype> emotePrototypes)
|
||||
{
|
||||
var whitelistSystem = EntitySystemManager.GetEntitySystem<EntityWhitelistSystem>();
|
||||
var player = _playerManager.LocalSession?.AttachedEntity;
|
||||
|
||||
Dictionary<EmoteCategory, List<RadialMenuOption>> emotesByCategory = new();
|
||||
Dictionary<EmoteCategory, List<RadialMenuOptionBase>> emotesByCategory = new();
|
||||
foreach (var emote in emotePrototypes)
|
||||
{
|
||||
if(emote.Category == EmoteCategory.Invalid)
|
||||
@@ -158,19 +157,19 @@ public sealed class EmotesUIController : UIController, IOnStateChanged<GameplayS
|
||||
|
||||
if (!emotesByCategory.TryGetValue(emote.Category, out var list))
|
||||
{
|
||||
list = new List<RadialMenuOption>();
|
||||
list = new List<RadialMenuOptionBase>();
|
||||
emotesByCategory.Add(emote.Category, list);
|
||||
}
|
||||
|
||||
var actionOption = new RadialMenuActionOption<EmotePrototype>(HandleRadialButtonClick, emote)
|
||||
{
|
||||
Sprite = emote.Icon,
|
||||
IconSpecifier = RadialMenuIconSpecifier.With(emote.Icon),
|
||||
ToolTip = Loc.GetString(emote.Name)
|
||||
};
|
||||
list.Add(actionOption);
|
||||
}
|
||||
|
||||
var models = new RadialMenuOption[emotesByCategory.Count];
|
||||
var models = new RadialMenuOptionBase[emotesByCategory.Count];
|
||||
var i = 0;
|
||||
foreach (var (key, list) in emotesByCategory)
|
||||
{
|
||||
@@ -178,7 +177,7 @@ public sealed class EmotesUIController : UIController, IOnStateChanged<GameplayS
|
||||
|
||||
models[i] = new RadialMenuNestedLayerOption(list)
|
||||
{
|
||||
Sprite = tuple.Sprite,
|
||||
IconSpecifier = RadialMenuIconSpecifier.With(tuple.Sprite),
|
||||
ToolTip = Loc.GetString(tuple.Tooltip)
|
||||
};
|
||||
i++;
|
||||
@@ -189,6 +188,6 @@ public sealed class EmotesUIController : UIController, IOnStateChanged<GameplayS
|
||||
|
||||
private void HandleRadialButtonClick(EmotePrototype prototype)
|
||||
{
|
||||
_entityManager.RaisePredictiveEvent(new PlayEmoteMessage(prototype.ID));
|
||||
EntityManager.RaisePredictiveEvent(new PlayEmoteMessage(prototype.ID));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user