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

[Tweak] Upstream sync #1019

Merged
merged 111 commits into from
Jan 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
4809ee2
Add option to disable bwoink sound. (#33782)
c4llv07e Jan 17, 2025
40e0496
Automatic changelog update
PJBot Jan 17, 2025
8295bfb
Pride Scarves (#34448)
southbridge-fur Jan 17, 2025
ac04604
Automatic changelog update
PJBot Jan 17, 2025
50bb5e0
Replace the djstation intercoms with freelance intercoms (#34478)
Minemoder5000 Jan 17, 2025
b07fe8e
Staging: Add taped logo back for 10th anniversary (#34486)
PJB3005 Jan 17, 2025
2fa4f0a
Update nix flake for .NET 9 (#34480)
Toby222 Jan 17, 2025
464f68d
Automatic changelog update
PJBot Jan 17, 2025
166c2fd
[Maps] Emergency Awesome fix (#2938)
Stubaretka24 Jan 17, 2025
efd5d64
Holopad networking rework (#34112)
chromiumboy Jan 17, 2025
0e840d8
Make GasMixture enumerable
PJB3005 Jan 17, 2025
f63eb69
Improve canister admin logs.
PJB3005 Jan 17, 2025
9d4e600
Optimize & clean up RadiationSystem (#34459)
ElectroJr Jan 18, 2025
970b4a6
Improve canister admin logs (#34495)
Partmedia Jan 18, 2025
c4542ee
Update engine to v240.0.1 (#34497)
ElectroJr Jan 18, 2025
c78717e
Various Locale Typo Fixes (and spaces) (#34483)
Monotheonist Jan 18, 2025
7f0ff0b
Space lizard plushie can now be worn on your head (#33809)
ArtisticRoomba Jan 18, 2025
17464ff
Automatic changelog update
PJBot Jan 18, 2025
343f59f
Adds bullet collision to wall mounted cameras (#34500)
Spessmann Jan 18, 2025
fb38bf3
Automatic changelog update
PJBot Jan 18, 2025
f3324b4
Update engine to v240.0.1 (#34497)
ElectroJr Jan 18, 2025
026d65d
Staging -> Master merge (#34489)
VasilisThePikachu Jan 18, 2025
86cf3a4
Change MaskComponent to accommodate sprites namings (#33451)
Winkarst-cpu Jan 18, 2025
5d06ee2
Automatic changelog update
PJBot Jan 18, 2025
1840160
Add a 10u vial of plasma to the chemical locker (#33871)
Minemoder5000 Jan 18, 2025
4a015d1
Automatic changelog update
PJBot Jan 18, 2025
993b5c4
Rarer Highcaps (#34469)
Nox38 Jan 18, 2025
428fcd6
Automatic changelog update
PJBot Jan 18, 2025
2f8f536
New dry fire sound (#34447)
K-Dynamic Jan 19, 2025
a2df771
Automatic changelog update
PJBot Jan 19, 2025
b471c10
CentComm Map Updates (#34475)
minus1over12 Jan 19, 2025
5fb8ebb
Automatic changelog update
PJBot Jan 19, 2025
c917bcc
Cog power setup fix (#34188)
TytosB Jan 19, 2025
bf59371
Add Airlocks with Bar and Kitchen access (#33821)
CheesePlated Jan 19, 2025
b17549c
Перевод Upstream #2924 #2936 (#2940)
lapatison Jan 19, 2025
09d93ac
[Maps] Tushkan update #4 (#2942)
Ko4ergaPunk Jan 19, 2025
a83fd7b
Fixed minor spelling mistake in Noir Trenchcoat description. (#34519)
Tezzaide Jan 19, 2025
2894f49
Update Credits (#34507)
github-actions[bot] Jan 19, 2025
b09cd1c
Make storage implant drop items on gibbing (#33493)
Winkarst-cpu Jan 19, 2025
c0fcf4b
Automatic changelog update
PJBot Jan 19, 2025
17c0754
translation corrections (#2943)
lapatison Jan 19, 2025
ef50219
Fix `emergency_elkridge` being saved as a map (#34496)
ElectroJr Jan 19, 2025
40f9170
Update engine to v240.1.0 (#34524)
ElectroJr Jan 20, 2025
01860fd
translation corrections (#2941)
lapatison Jan 20, 2025
ed44f32
Fixes some mobs not being able to honk/weh (#33777)
ArtisticRoomba Jan 20, 2025
9485cb6
Automatic changelog update
PJBot Jan 20, 2025
6ed60fe
Welding gas mask toggleable with action (#32691)
K-Dynamic Jan 20, 2025
a84b67a
Automatic changelog update
PJBot Jan 20, 2025
1846e9b
fix locale (#2925)
lzk228 Jan 20, 2025
64689b4
Fix `emergency_elkridge` being saved as a map (#34496)
ElectroJr Jan 19, 2025
c4ed3fc
Update engine to v240.1.1 (#34527)
ElectroJr Jan 20, 2025
6b6dc13
Automatic changelog update
PJBot Jan 20, 2025
6361a12
Plasma Dirt Fix (#34534)
southbridge-fur Jan 20, 2025
a1e7b78
Fix locale (#2874)
lzk228 Jan 20, 2025
60ed142
Cherry-pick to stable: Fix `emergency_elkridge` being saved as a map …
Errant-4 Jan 20, 2025
671ab10
[HOTFIX] Admin Menu player jobs (#34545)
Errant-4 Jan 20, 2025
b0c9c79
Merge stable into master (#34547)
slarticodefast Jan 20, 2025
04c0817
Plasma station population tweak (#34549)
Compilatron144 Jan 21, 2025
f092ddc
Automatic changelog update
PJBot Jan 21, 2025
796f599
Job contraband rework (#33385)
sporkyz Jan 21, 2025
1f6e041
Automatic changelog update
PJBot Jan 21, 2025
9950648
[HOTFIX] Fix MRP whitelist auto denying people with any medium severi…
ArtisticRoomba Jan 21, 2025
24219cb
Electrified doors/windoors now spark, new tips to deal with doors wit…
K-Dynamic Jan 21, 2025
14aff1c
Automatic changelog update
PJBot Jan 21, 2025
07ad21d
Merge salamander whitelist hotfix #34532 into master (#34551)
slarticodefast Jan 21, 2025
c80cdc8
[Maps] Astra Update (#2945)
lastPechkin Jan 21, 2025
36e0fd8
[Maps] Cute tweaks (#2946)
Ko4ergaPunk Jan 21, 2025
0da6a99
Blueprint double emergency tank (#34232)
Nimfar11 Jan 21, 2025
1031d2a
Automatic changelog update
PJBot Jan 21, 2025
1d51fd6
[Maps] Astra extra fix (#2947)
lastPechkin Jan 21, 2025
ae21306
HOTFIX Admin playerlist character update fix (#34560)
Errant-4 Jan 21, 2025
71c9dfc
Add system to kick people if they connect to multiple servers at once…
PJB3005 Jan 21, 2025
ef24e4b
Automatic changelog update
PJBot Jan 21, 2025
20acef1
Merge stable into master (#34564)
slarticodefast Jan 21, 2025
3499b47
bagel update (#34572)
Emisse Jan 22, 2025
ee7f98a
remove tropico from devmap (#34585)
Errant-4 Jan 22, 2025
7415149
Update wizden config to disallow multiple connections to multiple wiz…
VasilisThePikachu Jan 22, 2025
85da235
Give the chef access to cloth boxes (#34403)
sowelipililimute Jan 22, 2025
b4fa49a
Automatic changelog update
PJBot Jan 22, 2025
cb5e798
lecter visual update (#34589)
Emisse Jan 23, 2025
7db3595
Automatic changelog update
PJBot Jan 23, 2025
4eba0be
fix locale (#2944)
lzk228 Jan 23, 2025
9944076
Box Station - Update (#34605)
southbridge-fur Jan 23, 2025
39c1737
pluralize the job name in the contra description (#34559)
Ian321 Jan 23, 2025
f186838
Automatic changelog update
PJBot Jan 23, 2025
68b0dfb
Feature/make radial menu great again (#32653)
Fildrance Jan 23, 2025
713d451
Automatic changelog update
PJBot Jan 23, 2025
9bd8b89
Return Drozd full-auto and semi-auto firing modes (#34604)
K-Dynamic Jan 23, 2025
bc5812d
Automatic changelog update
PJBot Jan 23, 2025
033f844
added missing allowed department to the restricted severity (#34558)
Ian321 Jan 23, 2025
b248921
Automatic changelog update
PJBot Jan 23, 2025
8af001e
[Maps] Terminal update (#2948)
lastPechkin Jan 23, 2025
f792837
C4 Helmet (#34076)
TheShuEd Jan 23, 2025
0402149
Automatic changelog update
PJBot Jan 23, 2025
7168de6
Make radioactive material radioactive (#34436)
minus1over12 Jan 23, 2025
7f02efc
Automatic changelog update
PJBot Jan 23, 2025
5e7cc99
Small fixes for Meta station (#34613)
Nox38 Jan 23, 2025
371b1f8
replace all instances of "department-{id}" with department.name (#34607)
Ian321 Jan 24, 2025
2580a21
Renaming sexy mime and clown mask (#34258)
JustinWinningham Jan 24, 2025
05ed43f
Automatic changelog update
PJBot Jan 24, 2025
613e710
Moved Cyborg Recharging Circuit Board from Lathe to Circuit Imprinter…
Velken Jan 24, 2025
cc24164
Automatic changelog update
PJBot Jan 24, 2025
052be81
Replace starter borg brain with Positronic (#34614)
Errant-4 Jan 24, 2025
0707ee5
Automatic changelog update
PJBot Jan 24, 2025
9605c31
tweak locale (#2949)
lzk228 Jan 24, 2025
b147e09
Revert "Add Ai announcements sound" (#2903)
Zekins3366 Jan 24, 2025
cba8bbe
Update borg_modules.ftl (#2890)
lzk228 Jan 24, 2025
e1291d0
Elkridge Depot fixes and changes (#34539)
Deerstop Jan 24, 2025
97854f4
Merge remote-tracking branch 'wizard/master' into upstream-sync
Roudenn Jan 25, 2025
8f8f4dd
Merge remote-tracking branch 'corvax/master' into upstream-sync
Roudenn Jan 25, 2025
cc6b03a
Update HolopadSystem.cs
Roudenn Jan 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
set -e
if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
fi
use flake
22 changes: 11 additions & 11 deletions Content.Client/Chat/UI/EmotesMenu.xaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<ui:RadialMenu xmlns="https://spacestation14.io"
<ui:RadialMenu xmlns="https://spacestation14.io"
xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
BackButtonStyleClass="RadialMenuBackButton"
CloseButtonStyleClass="RadialMenuCloseButton"
Expand All @@ -7,25 +7,25 @@
MinSize="450 450">

<!-- Main -->
<ui:RadialContainer Name="Main" VerticalExpand="True" HorizontalExpand="True" Radius="64" ReserveSpaceForHiddenChildren="False">
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-general'}" TargetLayer="General" Visible="False">
<ui:RadialContainer Name="Main" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100" ReserveSpaceForHiddenChildren="False">
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-general'}" TargetLayer="General" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Head/Soft/mimesoft.rsi/icon.png"/>
</ui:RadialMenuTextureButton>
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-vocal'}" TargetLayer="Vocal" Visible="False">
</ui:RadialMenuTextureButtonWithSector>
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-vocal'}" TargetLayer="Vocal" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Interface/Emotes/vocal.png"/>
</ui:RadialMenuTextureButton>
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-hands'}" TargetLayer="Hands" Visible="False">
</ui:RadialMenuTextureButtonWithSector>
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-hands'}" TargetLayer="Hands" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Hands/Gloves/latex.rsi/icon.png"/>
</ui:RadialMenuTextureButton>
</ui:RadialMenuTextureButtonWithSector>
</ui:RadialContainer>

<!-- General -->
<ui:RadialContainer Name="General" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
<ui:RadialContainer Name="General" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>

<!-- Vocal -->
<ui:RadialContainer Name="Vocal" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
<ui:RadialContainer Name="Vocal" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>

<!-- Hands -->
<ui:RadialContainer Name="Hands" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
<ui:RadialContainer Name="Hands" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>

</ui:RadialMenu>
3 changes: 1 addition & 2 deletions Content.Client/Chat/UI/EmotesMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public EmotesMenu()

var button = new EmoteMenuButton
{
StyleClasses = { "RadialMenuButton" },
SetSize = new Vector2(64f, 64f),
ToolTip = Loc.GetString(emote.Name),
ProtoId = emote.ID,
Expand Down Expand Up @@ -106,7 +105,7 @@ private void AddEmoteClickAction(RadialContainer container)
}


public sealed class EmoteMenuButton : RadialMenuTextureButton
public sealed class EmoteMenuButton : RadialMenuTextureButtonWithSector
{
public ProtoId<EmotePrototype> ProtoId { get; set; }
}
2 changes: 1 addition & 1 deletion Content.Client/CrewManifest/UI/CrewManifestSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public CrewManifestSection(
AddChild(new Label()
{
StyleClasses = { "LabelBig" },
Text = Loc.GetString($"department-{section.ID}")
Text = Loc.GetString(section.Name)
});

var gridContainer = new GridContainer()
Expand Down
3 changes: 1 addition & 2 deletions Content.Client/Ghost/GhostRoleRadioMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ private void RefreshUI()

var button = new GhostRoleRadioMenuButton()
{
StyleClasses = { "RadialMenuButton" },
SetSize = new Vector2(64, 64),
ToolTip = Loc.GetString(ghostRoleProto.Name),
ProtoId = ghostRoleProto.ID,
Expand Down Expand Up @@ -100,7 +99,7 @@ private void AddGhostRoleRadioMenuButtonOnClickActions(Control control)
}
}

public sealed class GhostRoleRadioMenuButton : RadialMenuTextureButton
public sealed class GhostRoleRadioMenuButton : RadialMenuTextureButtonWithSector
{
public ProtoId<GhostRolePrototype> ProtoId { get; set; }
}
135 changes: 47 additions & 88 deletions Content.Client/Holopad/HolopadSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,38 @@
using Content.Shared.Holopad;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using System.Linq;
using DrawDepth = Content.Shared.DrawDepth.DrawDepth;

namespace Content.Client.Holopad;

public sealed class HolopadSystem : SharedHolopadSystem
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<HolopadHologramComponent, ComponentInit>(OnComponentInit);
SubscribeLocalEvent<HolopadHologramComponent, ComponentStartup>(OnComponentStartup);
SubscribeLocalEvent<HolopadHologramComponent, BeforePostShaderRenderEvent>(OnShaderRender);
SubscribeAllEvent<TypingChangedEvent>(OnTypingChanged);

SubscribeNetworkEvent<PlayerSpriteStateRequest>(OnPlayerSpriteStateRequest);
SubscribeNetworkEvent<PlayerSpriteStateMessage>(OnPlayerSpriteStateMessage);
}

private void OnComponentInit(EntityUid uid, HolopadHologramComponent component, ComponentInit ev)
private void OnComponentStartup(Entity<HolopadHologramComponent> entity, ref ComponentStartup ev)
{
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;

UpdateHologramSprite(uid);
UpdateHologramSprite(entity, entity.Comp.LinkedEntity);
}

private void OnShaderRender(EntityUid uid, HolopadHologramComponent component, BeforePostShaderRenderEvent ev)
private void OnShaderRender(Entity<HolopadHologramComponent> entity, ref BeforePostShaderRenderEvent ev)
{
if (ev.Sprite.PostShader == null)
return;

ev.Sprite.PostShader.SetParameter("t", (float)_timing.CurTime.TotalSeconds * component.ScrollRate);
UpdateHologramSprite(entity, entity.Comp.LinkedEntity);
}

private void OnTypingChanged(TypingChangedEvent ev, EntitySessionEventArgs args)
Expand All @@ -57,100 +50,66 @@ private void OnTypingChanged(TypingChangedEvent ev, EntitySessionEventArgs args)
RaiseNetworkEvent(netEv);
}

private void OnPlayerSpriteStateRequest(PlayerSpriteStateRequest ev)
private void UpdateHologramSprite(EntityUid hologram, EntityUid? target)
{
var targetPlayer = GetEntity(ev.TargetPlayer);
var player = _playerManager.LocalSession?.AttachedEntity;

// Ignore the request if received by a player who isn't the target
if (targetPlayer != player)
// Get required components
if (!TryComp<SpriteComponent>(hologram, out var hologramSprite) ||
!TryComp<HolopadHologramComponent>(hologram, out var holopadhologram))
return;

if (!TryComp<SpriteComponent>(player, out var playerSprite))
return;

var spriteLayerData = new List<PrototypeLayerData>();
// Remove all sprite layers
for (int i = hologramSprite.AllLayers.Count() - 1; i >= 0; i--)
hologramSprite.RemoveLayer(i);

if (playerSprite.Visible)
if (TryComp<SpriteComponent>(target, out var targetSprite))
{
// Record the RSI paths, state names and shader paramaters of all visible layers
for (int i = 0; i < playerSprite.AllLayers.Count(); i++)
// Use the target's holographic avatar (if available)
if (TryComp<HolographicAvatarComponent>(target, out var targetAvatar) &&
targetAvatar.LayerData != null)
{
if (!playerSprite.TryGetLayer(i, out var layer))
continue;

if (!layer.Visible ||
string.IsNullOrEmpty(layer.ActualRsi?.Path.ToString()) ||
string.IsNullOrEmpty(layer.State.Name))
continue;

var layerDatum = new PrototypeLayerData();
layerDatum.RsiPath = layer.ActualRsi.Path.ToString();
layerDatum.State = layer.State.Name;

if (layer.CopyToShaderParameters != null)
for (int i = 0; i < targetAvatar.LayerData.Length; i++)
{
var key = (string)layer.CopyToShaderParameters.LayerKey;

if (playerSprite.LayerMapTryGet(key, out var otherLayerIdx) &&
playerSprite.TryGetLayer(otherLayerIdx, out var otherLayer) &&
otherLayer.Visible)
{
layerDatum.MapKeys = new() { key };

layerDatum.CopyToShaderParameters = new PrototypeCopyToShaderParameters()
{
LayerKey = key,
ParameterTexture = layer.CopyToShaderParameters.ParameterTexture,
ParameterUV = layer.CopyToShaderParameters.ParameterUV
};
}
var layer = targetAvatar.LayerData[i];
hologramSprite.AddLayer(targetAvatar.LayerData[i], i);
}
}

spriteLayerData.Add(layerDatum);
// Otherwise copy the target's current physical appearance
else
{
hologramSprite.CopyFrom(targetSprite);
}
}

// Return the recorded data to the server
var evResponse = new PlayerSpriteStateMessage(ev.TargetPlayer, spriteLayerData.ToArray());
RaiseNetworkEvent(evResponse);
}

private void OnPlayerSpriteStateMessage(PlayerSpriteStateMessage ev)
{
UpdateHologramSprite(GetEntity(ev.SpriteEntity), ev.SpriteLayerData);
}

private void UpdateHologramSprite(EntityUid uid, PrototypeLayerData[]? layerData = null)
{
if (!TryComp<SpriteComponent>(uid, out var hologramSprite))
return;

if (!TryComp<HolopadHologramComponent>(uid, out var holopadhologram))
return;
// There is no target, display a default sprite instead (if available)
else
{
if (string.IsNullOrEmpty(holopadhologram.RsiPath) || string.IsNullOrEmpty(holopadhologram.RsiState))
return;

for (int i = hologramSprite.AllLayers.Count() - 1; i >= 0; i--)
hologramSprite.RemoveLayer(i);
var layer = new PrototypeLayerData();
layer.RsiPath = holopadhologram.RsiPath;
layer.State = holopadhologram.RsiState;

if (layerData == null || layerData.Length == 0)
{
layerData = new PrototypeLayerData[1];
layerData[0] = new PrototypeLayerData()
{
RsiPath = holopadhologram.RsiPath,
State = holopadhologram.RsiState
};
hologramSprite.AddLayer(layer);
}

for (int i = 0; i < layerData.Length; i++)
{
var layer = layerData[i];
layer.Shader = "unshaded";
// Override specific values
hologramSprite.Color = Color.White;
hologramSprite.Offset = holopadhologram.Offset;
hologramSprite.DrawDepth = (int)DrawDepth.Mobs;
hologramSprite.NoRotation = true;
hologramSprite.DirectionOverride = Direction.South;
hologramSprite.EnableDirectionOverride = true;

hologramSprite.AddLayer(layerData[i], i);
// Remove shading from all layers (except displacement maps)
for (int i = 0; i < hologramSprite.AllLayers.Count(); i++)
{
if (hologramSprite.TryGetLayer(i, out var layer) && layer.ShaderPrototype != "DisplacedStencilDraw")
hologramSprite.LayerSetShader(i, "unshaded");
}

UpdateHologramShader(uid, hologramSprite, holopadhologram);
UpdateHologramShader(hologram, hologramSprite, holopadhologram);
}

private void UpdateHologramShader(EntityUid uid, SpriteComponent sprite, HolopadHologramComponent holopadHologram)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/LateJoin/LateJoinGui.cs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ private void RebuildUI()

foreach (var department in departments)
{
var departmentName = Loc.GetString($"department-{department.ID}");
var departmentName = Loc.GetString(department.Name);
_jobCategories[id] = new Dictionary<string, BoxContainer>();
var stationAvailable = _gameTicker.JobsAvailable[id];
var jobsAvailable = new List<JobPrototype>();
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ public void RefreshJobs()

foreach (var department in departments)
{
var departmentName = Loc.GetString($"department-{department.ID}");
var departmentName = Loc.GetString(department.Name);

if (!_jobCategories.TryGetValue(department.ID, out var category))
{
Expand Down
1 change: 1 addition & 0 deletions Content.Client/Options/UI/Tabs/AudioTab.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<CheckBox Name="RestartSoundsCheckBox" Text="{Loc 'ui-options-restart-sounds'}" />
<CheckBox Name="EventMusicCheckBox" Text="{Loc 'ui-options-event-music'}" />
<CheckBox Name="AdminSoundsCheckBox" Text="{Loc 'ui-options-admin-sounds'}" />
<CheckBox Name="BwoinkSoundCheckBox" Text="{Loc 'ui-options-bwoink-sound'}" />
</BoxContainer>
</BoxContainer>
<ui:OptionsTabControlRow Name="Control" Access="Public" />
Expand Down
24 changes: 23 additions & 1 deletion Content.Client/Options/UI/Tabs/AudioTab.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Content.Client.Administration.Managers;
using Content.Client.Audio;
using Content.Shared.CCVar;
using Content.Shared.Corvax.CCCVars;
Expand All @@ -13,8 +14,9 @@ namespace Content.Client.Options.UI.Tabs;
[GenerateTypedNameReferences]
public sealed partial class AudioTab : Control
{
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IAudioManager _audio = default!;
[Dependency] private readonly IClientAdminManager _admin = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;

public AudioTab()
{
Expand Down Expand Up @@ -79,10 +81,30 @@ public AudioTab()
Control.AddOptionCheckBox(CCVars.RestartSoundsEnabled, RestartSoundsCheckBox);
Control.AddOptionCheckBox(CCVars.EventMusicEnabled, EventMusicCheckBox);
Control.AddOptionCheckBox(CCVars.AdminSoundsEnabled, AdminSoundsCheckBox);
Control.AddOptionCheckBox(CCVars.BwoinkSoundEnabled, BwoinkSoundCheckBox);

Control.Initialize();
}

protected override void EnteredTree()
{
base.EnteredTree();
_admin.AdminStatusUpdated += UpdateAdminButtonsVisibility;
UpdateAdminButtonsVisibility();
}

protected override void ExitedTree()
{
base.ExitedTree();
_admin.AdminStatusUpdated -= UpdateAdminButtonsVisibility;
}


private void UpdateAdminButtonsVisibility()
{
BwoinkSoundCheckBox.Visible = _admin.IsActive();
}

private void OnMasterVolumeSliderChanged(float value)
{
// TODO: I was thinking of giving OptionsTabControlRow a flag to "set CVar immediately", but I'm deferring that
Expand Down
Loading
Loading