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

Upstream #129

Merged
merged 196 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
c90bc00
Adjust Air Alarm Pressure Thresholds (#996)
zelezniciar1 Oct 19, 2024
bd6a6ba
Automatic Changelog Update (#996)
SimpleStation14 Oct 19, 2024
0d66558
Personal Ai Languages (#1066)
VMSolidus Oct 19, 2024
4c8caf0
Fix Melee Contests (#1069)
VMSolidus Oct 19, 2024
8b7f376
Automatic Changelog Update (#1069)
SimpleStation14 Oct 19, 2024
41b6b40
Cherry-Pick Wizden PR #28447 (#1077)
VMSolidus Oct 19, 2024
060861b
Fix Cryptobiolin (#1081)
VMSolidus Oct 19, 2024
2bdbc9f
Fix Nicotine Addiction (#1082)
VMSolidus Oct 19, 2024
857d955
Fix Too Much Food And Drink (#1083)
VMSolidus Oct 19, 2024
6b061d6
Arena Arrivals Dock (#1086)
VMSolidus Oct 19, 2024
3f9c9c8
Automatic Changelog Update (#1081)
SimpleStation14 Oct 19, 2024
8ec0de2
Cherry-Pick Space-Wizards/Space-Station-14#26001 (#1087)
Mnemotechnician Oct 19, 2024
e242646
Fix Mech Weight (#1090)
VMSolidus Oct 19, 2024
08250d6
Pistol Ammo Counter (#1091)
VMSolidus Oct 19, 2024
3547746
Stop Harpy Singing On Disconnect (#1079)
VMSolidus Oct 19, 2024
5da5cd8
Fix Add Psionic Power Command (#1095)
VMSolidus Oct 19, 2024
4d65063
Automatic Changelog Update (#1086)
SimpleStation14 Oct 19, 2024
cb2e8d5
Chaplain Bible Loadouts (#1068)
VMSolidus Oct 19, 2024
bfc260a
Glacier Dedicated Arrivals Dock (#1088)
VMSolidus Oct 19, 2024
13f1311
Automatic Changelog Update (#1095)
SimpleStation14 Oct 19, 2024
879f117
Syndicate Listening Outpost Version 2 (#1065)
VMSolidus Oct 19, 2024
02074d4
Automatic Changelog Update (#1065)
SimpleStation14 Oct 19, 2024
3052290
Fix Steal Hos Weapon Objective (#1084)
VMSolidus Oct 19, 2024
d7970ab
Automatic Changelog Update (#1084)
SimpleStation14 Oct 19, 2024
743583e
Adds TC To Listening Post Operatives (#1062)
gluesniffler Oct 19, 2024
fce81b3
Automatic Changelog Update (#1062)
SimpleStation14 Oct 19, 2024
d21d53d
Job Whitelist System (#1093)
FoxxoTrystan Oct 19, 2024
4918353
Automatic Changelog Update (#1093)
SimpleStation14 Oct 19, 2024
8191607
Various Wielding Fixes (#1078)
VMSolidus Oct 20, 2024
2374026
Automatic Changelog Update (#1078)
SimpleStation14 Oct 20, 2024
1dc36a9
Allow Talking Across Atmosphere (#1089)
VMSolidus Oct 20, 2024
48f3df7
Automatic Changelog Update (#1089)
SimpleStation14 Oct 20, 2024
dbe836e
Fix a Single Petting Interaction Locale (#1106)
Mnemotechnician Oct 20, 2024
bf1b70d
[Feature] Generic Radial Selector Menu (#1071)
Remuchi Oct 20, 2024
7e6688c
Fix Breath Of Life Locale (#1109)
VMSolidus Oct 20, 2024
63cfc62
Automatic Changelog Update (#1109)
SimpleStation14 Oct 20, 2024
11ef3df
Shadowkin (#960)
FoxxoTrystan Oct 20, 2024
f687cf1
Automatic Changelog Update (#960)
SimpleStation14 Oct 20, 2024
77c5e7c
Remove Pathfinder Latejoin Spawns (#1105)
VMSolidus Oct 20, 2024
7d0d627
Musician Loadouts (#1108)
VMSolidus Oct 20, 2024
5c57427
Automatic Changelog Update (#1105)
SimpleStation14 Oct 20, 2024
952e56b
Automatic Changelog Update (#1108)
SimpleStation14 Oct 20, 2024
a256d98
Epistemics Job Localizations (#1094)
VMSolidus Oct 20, 2024
8c72d5a
Automatic Changelog Update (#1094)
SimpleStation14 Oct 20, 2024
e57a360
Revert "Allow Talking Across Atmosphere (#1089)" (#1111)
VMSolidus Oct 20, 2024
25cdae7
Fix Gax Missing LV Cable (#1112)
VMSolidus Oct 20, 2024
8a79a2c
Automatic Changelog Update (#1112)
SimpleStation14 Oct 20, 2024
799ebba
Fix Arrivals Not Respecting Force Spawn (#1113)
VMSolidus Oct 20, 2024
78f6ff8
Automatic Changelog Update (#1113)
SimpleStation14 Oct 20, 2024
9da4d4a
Port Sacrificing (#1110)
VMSolidus Oct 20, 2024
9a8b072
Automatic Changelog Update (#1110)
SimpleStation14 Oct 20, 2024
8cf93ee
Fix Flavor Text Not Updating (#1119)
Aidenkrz Oct 21, 2024
23bd763
Automatic Changelog Update (#1119)
SimpleStation14 Oct 21, 2024
6403ecc
Glacier Pseudo Planet (#1115)
VMSolidus Oct 21, 2024
6d50b2e
Fix Asterisk (#1118)
VMSolidus Oct 21, 2024
144c0ff
Automatic Changelog Update (#1115)
SimpleStation14 Oct 21, 2024
181769c
Automatic Changelog Update (#1118)
SimpleStation14 Oct 21, 2024
cf4251d
Fix Custom Specie Name (#1120)
Aidenkrz Oct 22, 2024
ea3fcae
Automatic Changelog Update (#1120)
SimpleStation14 Oct 22, 2024
13046a0
[Fix] Cybereyes No Longer Reveal Identity. (#1127)
Remuchi Oct 23, 2024
037bc38
Automatic Changelog Update (#1127)
SimpleStation14 Oct 23, 2024
90a6c7d
Feat: Port Delta-V Glimmer Wisps (#1125)
Mnemotechnician Oct 23, 2024
34ed671
Automatic Changelog Update (#1125)
SimpleStation14 Oct 23, 2024
e555a6c
Fix High Amplification Trait Being the Wildest Scam in Human History …
Mnemotechnician Oct 25, 2024
3d31816
Automatic Changelog Update (#1137)
SimpleStation14 Oct 25, 2024
766c4bc
Cherry Pick PR #30576 (#1135)
Ghost581X Oct 25, 2024
d7db62c
[Fix] Added Missing Deflect Alert Locale (#1140)
Remuchi Oct 25, 2024
44ed408
Fix Markup Tags in Station News (#30169) (#1116)
VMSolidus Oct 25, 2024
64abf7e
Automatic Changelog Update (#1140)
SimpleStation14 Oct 25, 2024
6be56d8
Pyrokinetic Flare Power (#1138)
VMSolidus Oct 25, 2024
fd1260f
Penlight Repair (#1142)
SleepyScarecrow Oct 25, 2024
be49d9e
Automatic Changelog Update (#1138)
SimpleStation14 Oct 25, 2024
6d308dd
Automatic Changelog Update (#1142)
SimpleStation14 Oct 25, 2024
4863d89
Updade RadStation (#1129)
Ichaie Oct 27, 2024
623f12e
Remove LPO Shuttle Recalling (#1143)
VMSolidus Oct 27, 2024
1ed7b73
Automatic Changelog Update (#1129)
SimpleStation14 Oct 27, 2024
632db65
Automatic Changelog Update (#1143)
SimpleStation14 Oct 27, 2024
5468b32
[Fix] Fixed Icons In Radial Menus (#1150)
Remuchi Oct 27, 2024
78c428c
Automatic Changelog Update (#1150)
SimpleStation14 Oct 27, 2024
4de7762
[Feature] Clicking on Health Alerty Now Displays Health State (#1139)
Remuchi Oct 27, 2024
5d060d1
Automatic Changelog Update (#1139)
SimpleStation14 Oct 27, 2024
f89e677
Trait Modify Factions (#955)
VMSolidus Oct 27, 2024
615891c
[Feature] Telescopic Baton (#1144)
Remuchi Oct 27, 2024
219fe1e
Automatic Changelog Update (#955)
SimpleStation14 Oct 27, 2024
ab839c9
Automatic Changelog Update (#1144)
SimpleStation14 Oct 27, 2024
30b4114
Psionic Familiar System (#1146)
VMSolidus Oct 27, 2024
fdb4107
Automatic Changelog Update (#1146)
SimpleStation14 Oct 27, 2024
d7c7bb2
Update Credits (#1149)
github-actions[bot] Oct 27, 2024
5b81c3d
Properly Credit Contributors Who Were Truncated by GitHub API (#1153)
DEATHB4DEFEAT Oct 28, 2024
3ec2ee5
Tweak Familiars (#1162)
VMSolidus Oct 29, 2024
bf96887
Update Marish Language Description (#1160)
PlasmaRaptor Oct 29, 2024
edb44be
Automatic Changelog Update (#1162)
SimpleStation14 Oct 29, 2024
d4ebde5
Clean Up/Change Default Rules (#1154)
DEATHB4DEFEAT Oct 29, 2024
a295482
Updade Gax (#1163)
Ichaie Nov 1, 2024
ddc34c6
Automatic Changelog Update (#1163)
SimpleStation14 Nov 1, 2024
318d81c
Update Saltern (#1170)
VMSolidus Nov 2, 2024
db04c3d
Automatic Changelog Update (#1170)
SimpleStation14 Nov 2, 2024
fcc3744
Add Uranium, Gold, And Silver To Cargo Menu (#1171)
VMSolidus Nov 2, 2024
8d90af6
Automatic Changelog Update (#1171)
SimpleStation14 Nov 2, 2024
2f0e05a
Voice Mask Refactor and Fixes (#1147)
beck-thompson Nov 2, 2024
46d7574
More Sec Loadout Guns (#1158)
VMSolidus Nov 2, 2024
b9f95ed
Automatic Changelog Update (#1147)
SimpleStation14 Nov 2, 2024
b4cefee
Automatic Changelog Update (#1158)
SimpleStation14 Nov 2, 2024
e870c69
Fixes Cocoons (#1169)
FoxxoTrystan Nov 2, 2024
0187434
Automatic Changelog Update (#1169)
SimpleStation14 Nov 2, 2024
d9f30a2
Add New Sprites (#1174)
Ichaie Nov 2, 2024
f4ec5bb
Automatic Changelog Update (#1174)
SimpleStation14 Nov 2, 2024
3cf87ac
Syndicate Faction Comes From IFF Tags (#1176)
VMSolidus Nov 2, 2024
f8f0931
Automatic Changelog Update (#1176)
SimpleStation14 Nov 2, 2024
2b79dc6
Fix This Stupid Behavior (#1177)
VMSolidus Nov 2, 2024
f7cee82
Automatic Changelog Update (#1177)
SimpleStation14 Nov 2, 2024
bf57ba5
Remove eeMigrations.yml, Remove deltaMigrations.yml, Remove frontierM…
DangerRevolution Nov 5, 2024
c8d25c7
Fix CanShuttle Not Preventing Recalls (#1180)
VMSolidus Nov 5, 2024
9b355b0
Automatic Changelog Update (#1180)
SimpleStation14 Nov 5, 2024
31144c0
Robust Toolbolbox Version 227.0.0 (#1173)
VMSolidus Nov 5, 2024
ff5aaeb
Update Credits (#1179)
github-actions[bot] Nov 7, 2024
a67f715
Updates Health Analyzer UI (#1183)
gluesniffler Nov 7, 2024
e02832d
Automatic Changelog Update (#1183)
SimpleStation14 Nov 7, 2024
66218d0
Nerf The Shit Out Of Familiars (#1184)
VMSolidus Nov 8, 2024
d2ffb1d
Automatic Changelog Update (#1184)
SimpleStation14 Nov 8, 2024
c0fa967
Show Language Names In Chat (#1165)
VMSolidus Nov 8, 2024
8f1d7f4
Automatic Changelog Update (#1165)
SimpleStation14 Nov 8, 2024
dd38b03
Minor Fixes on Rad and Gax (#1178)
Ichaie Nov 8, 2024
b653d69
Port Cool Punpun (#1157)
DEATHB4DEFEAT Nov 8, 2024
147908e
Automatic Changelog Update (#1178)
SimpleStation14 Nov 8, 2024
423dd42
Traits V2 (#1182)
VMSolidus Nov 8, 2024
1190934
Automatic Changelog Update (#1182)
SimpleStation14 Nov 8, 2024
670af76
Disable Shadowkin (#1187)
VMSolidus Nov 8, 2024
b736b41
Automatic Changelog Update (#1187)
SimpleStation14 Nov 8, 2024
a4beeeb
Cherry Pick WizDen PR #28488 (#1194)
sleepyyapril Nov 8, 2024
5884427
Revert "[Port] Footsteps / Следы (#110)"
Spatison Nov 19, 2024
ea297db
Port Bloodstains And Footprints (#1190)
VMSolidus Nov 9, 2024
f362c96
Beacons (#1196)
sleepyyapril Nov 9, 2024
d057c1d
Cherry-Pick Wizden PR 28375 (#1191)
VMSolidus Nov 9, 2024
ce052f1
Fix Call Shuttle (#1199)
sleepyyapril Nov 10, 2024
0c813ed
Fix AddTrait And ReplaceTrait Functions (#1195)
VMSolidus Nov 10, 2024
7c450e7
Automatic Changelog Update (#1195)
SimpleStation14 Nov 10, 2024
ded1d94
Update Credits (#1202)
github-actions[bot] Nov 10, 2024
39bf026
Add Missing `DOTNET_ROOT` Environment Variable For Nix Devs (#1203)
DocNITE Nov 11, 2024
5e5d437
Swapped Hands HUD Fix (#1207)
Suraru Nov 13, 2024
4f3dc8c
Revert "[Fix] Butletron / Бутлетрон (#105)"
Spatison Nov 19, 2024
2d7bebf
Fix Butlertron's Hitbox (#1192)
VMSolidus Nov 13, 2024
b9ee977
Automatic Changelog Update (#1192)
SimpleStation14 Nov 13, 2024
bccb7a2
The Hive: Update Engineering (#1201)
Ichaie Nov 13, 2024
134c9b8
Automatic Changelog Update (#1201)
SimpleStation14 Nov 13, 2024
de1e2c5
Return Old Lobby Music (#1204)
DocNITE Nov 13, 2024
868a0a4
Automatic Changelog Update (#1204)
SimpleStation14 Nov 13, 2024
1c6fd8a
Prevent Listening Posts From Spawning On Planets (#1188)
VMSolidus Nov 13, 2024
446e4dd
Automatic Changelog Update (#1188)
SimpleStation14 Nov 13, 2024
2df6400
Fix Silver Crate Name (#1218)
sleepyyapril Nov 14, 2024
8751de3
Auto Voting System (#1213)
sleepyyapril Nov 14, 2024
db8f2d4
Automatic Changelog Update (#1213)
SimpleStation14 Nov 14, 2024
b9785b8
Fix Trait Component Removal (#1221)
DEATHB4DEFEAT Nov 14, 2024
c9df94e
Some Language Fixes (#1223)
Mnemotechnician Nov 14, 2024
c3c0b39
Automatic Changelog Update (#1223)
SimpleStation14 Nov 14, 2024
8ed43fc
The Return of Spray Paint (#1222)
DEATHB4DEFEAT Nov 15, 2024
93151ad
Bounties Localization Fix (#1219)
sleepyyapril Nov 15, 2024
e0ff3ff
Automatic Changelog Update (#1222)
SimpleStation14 Nov 15, 2024
274e719
Give Penguins Cold Resistance (#1229)
zelezniciar1 Nov 16, 2024
9558b82
Automatic Changelog Update (#1229)
SimpleStation14 Nov 16, 2024
f89cc40
Shitmed: Implementing Existing Newmed Code Into SS14 (#1159)
gluesniffler Nov 17, 2024
7fa6f57
Automatic Changelog Update (#1159)
SimpleStation14 Nov 17, 2024
afcb817
Update Credits (#1235)
github-actions[bot] Nov 17, 2024
a98717d
Mass Engine Update (#1220)
sleepyyapril Nov 17, 2024
1b68775
Pirate Radio Heisentest Fix (#1225)
VMSolidus Nov 17, 2024
fb3103b
Fix Loadout Subcategories Not Being Found (#1233)
DEATHB4DEFEAT Nov 17, 2024
2c2bd81
Hotfix Stamina System (#1245)
sleepyyapril Nov 18, 2024
0ed455f
Automatic Changelog Update (#1245)
SimpleStation14 Nov 18, 2024
5e1a40a
Day/Night Time Cycle For Maps (#1234)
DocNITE Nov 18, 2024
cc0bece
Automatic Changelog Update (#1234)
SimpleStation14 Nov 18, 2024
1f26ac6
Shitmed Update 1 (#1240)
gluesniffler Nov 18, 2024
2d6d537
Automatic Changelog Update (#1240)
SimpleStation14 Nov 18, 2024
ce3361f
Fix Self-Aware Crashing Client (#1247)
angelofallars Nov 18, 2024
9341666
Automatic Changelog Update (#1247)
SimpleStation14 Nov 18, 2024
409a100
Shitmed Surgery Popups (#1241)
angelofallars Nov 18, 2024
5f882d9
AlertsComponentTest Fix (#1246)
sleepyyapril Nov 18, 2024
7a84b82
Automatic Changelog Update (#1241)
SimpleStation14 Nov 18, 2024
bd33ec0
Power Attack Stamina Update (#1238)
angelofallars Nov 18, 2024
30600e4
Automatic Changelog Update (#1238)
SimpleStation14 Nov 18, 2024
4d44faf
Glimmer Wisps Mindbreak Their Victims (#1248)
VMSolidus Nov 18, 2024
8bf3e8f
Automatic Changelog Update (#1248)
SimpleStation14 Nov 18, 2024
aba9f32
The Great Loadout Reorganizing (#1230)
VMSolidus Nov 18, 2024
a78fb78
Automatic Changelog Update (#1230)
SimpleStation14 Nov 18, 2024
a7c39fc
RobustToolbox
Spatison Nov 19, 2024
d70275a
fix
Spatison Nov 19, 2024
fd7b592
fix
Spatison Nov 20, 2024
76b818f
fix linter
Spatison Nov 20, 2024
9276549
fix linter
Spatison Nov 20, 2024
a159a1e
fix linter
Spatison Nov 20, 2024
277ca59
fix linter
Spatison Nov 20, 2024
4dabbe7
Resprites Service Uniforms & Adds Rolled Sleeve Variants (#1021)
DangerRevolution Oct 10, 2024
86d54ff
fix
SimpleStation14 Oct 10, 2024
983f730
Service Contractor Loadouts (#1041)
VMSolidus Oct 13, 2024
79126d2
fix linter
SimpleStation14 Oct 13, 2024
9410ae0
fix
Spatison Nov 20, 2024
8a4b072
fix test
Spatison Nov 20, 2024
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ csharp_style_expression_bodied_constructors = false:suggestion
#csharp_style_expression_bodied_indexers = true:silent
#csharp_style_expression_bodied_lambdas = true:silent
#csharp_style_expression_bodied_local_functions = false:silent
csharp_style_expression_bodied_methods = false:suggestion
csharp_style_expression_bodied_methods = true:suggestion
#csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:suggestion

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/update-credits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:

- name: Get this week's Contributors
shell: pwsh
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: Tools/dump_github_contributors.ps1 > Resources/Credits/GitHub.txt

# TODO
Expand Down
11 changes: 11 additions & 0 deletions Content.Client/Administration/UI/DepartmentWhitelistPanel.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<PanelContainer
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI"
StyleClasses="BackgroundDark"
HorizontalExpand="True"
Margin="4">
<BoxContainer Orientation="Vertical">
<CheckBox Name="Department"/> <!-- Toggles all jobs in the department at once -->
<GridContainer Name="JobsContainer" Columns="4"/> <!-- Populated with each job to toggle individually-->
</BoxContainer>
</PanelContainer>
49 changes: 49 additions & 0 deletions Content.Client/Administration/UI/DepartmentWhitelistPanel.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;

namespace Content.Client.Administration.UI;

[GenerateTypedNameReferences]
public sealed partial class DepartmentWhitelistPanel : PanelContainer
{
public Action<ProtoId<JobPrototype>, bool>? OnSetJob;

public DepartmentWhitelistPanel(DepartmentPrototype department, IPrototypeManager proto, HashSet<ProtoId<JobPrototype>> whitelists)
{
RobustXamlLoader.Load(this);

var allWhitelisted = true;
var grey = Color.FromHex("#ccc");
foreach (var id in department.Roles)
{
var thisJob = id; // closure capturing funny
var button = new CheckBox();
button.Text = proto.Index<JobPrototype>(id).LocalizedName;
if (!proto.Index<JobPrototype>(id).Whitelisted)
button.Modulate = grey; // Let admins know whitelisting this job is only for futureproofing.
button.Pressed = whitelists.Contains(id);
button.OnPressed += _ => OnSetJob?.Invoke(thisJob, button.Pressed);
JobsContainer.AddChild(button);

allWhitelisted &= button.Pressed;
}

Department.Text = Loc.GetString(department.ID);
Department.Modulate = department.Color;
Department.Pressed = allWhitelisted;
Department.OnPressed += args =>
{
foreach (var id in department.Roles)
{
// only request to whitelist roles that aren't already whitelisted, and vice versa
if (whitelists.Contains(id) != Department.Pressed)
OnSetJob?.Invoke(id, Department.Pressed);
}
};
}
}
40 changes: 40 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsEui.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using Content.Client.Eui;
using Content.Shared.Administration;
using Content.Shared.Eui;

namespace Content.Client.Administration.UI;

public sealed class JobWhitelistsEui : BaseEui
{
private JobWhitelistsWindow Window;

public JobWhitelistsEui()
{
Window = new JobWhitelistsWindow();
Window.OnClose += () => SendMessage(new CloseEuiMessage());
Window.OnSetJob += (id, whitelisted) => SendMessage(new SetJobWhitelistedMessage(id, whitelisted));
}

public override void HandleState(EuiStateBase state)
{
if (state is not JobWhitelistsEuiState cast)
return;

Window.HandleState(cast);
}

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

Window.OpenCentered();
}

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

Window.Close();
Window.Dispose();
}
}
11 changes: 11 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<controls:FancyWindow
xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Title="{Loc player-panel-job-whitelists}" MinSize="750 600">
<BoxContainer Orientation="Vertical">
<Label Name="PlayerName" Margin="4"/>
<ScrollContainer VerticalExpand="True">
<BoxContainer Name="Departments" Orientation="Vertical"/> <!-- Populated with DepartmentWhitelistPanel -->
</ScrollContainer>
</BoxContainer>
</controls:FancyWindow>
46 changes: 46 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Content.Client.UserInterface.Controls;
using Content.Shared.Database;
using Content.Shared.Administration;
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;

namespace Content.Client.Administration.UI;

/// <summary>
/// An admin panel to toggle whitelists for individual jobs or entire departments.
/// This should generally be preferred to a blanket whitelist (Whitelisted: True) since
/// being good with a batong doesn't mean you know engineering and vice versa.
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class JobWhitelistsWindow : FancyWindow
{
[Dependency] private readonly IPrototypeManager _proto = default!;

public Action<ProtoId<JobPrototype>, bool>? OnSetJob;

public JobWhitelistsWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);

PlayerName.Text = "???";
}

public void HandleState(JobWhitelistsEuiState state)
{
PlayerName.Text = state.PlayerName;

Departments.RemoveAllChildren();
foreach (var proto in _proto.EnumeratePrototypes<DepartmentPrototype>())
{
var panel = new DepartmentWhitelistPanel(proto, _proto, state.Whitelists);
panel.OnSetJob += (id, whitelisting) => OnSetJob?.Invoke(id, whitelisting);
Departments.AddChild(panel);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public sealed class ExplosionDebugOverlay : Overlay

public override OverlaySpace Space => OverlaySpace.WorldSpace | OverlaySpace.ScreenSpace;

public Matrix3 SpaceMatrix;
public Matrix3x2 SpaceMatrix;
public MapId Map;

private readonly Font _font;
Expand Down Expand Up @@ -78,15 +78,16 @@ private void DrawScreen(OverlayDrawArgs args)
if (SpaceTiles == null)
return;

gridBounds = Matrix3.Invert(SpaceMatrix).TransformBox(args.WorldBounds);
Matrix3x2.Invert(SpaceMatrix, out var invSpace);
gridBounds = invSpace.TransformBox(args.WorldBounds);

DrawText(handle, gridBounds, SpaceMatrix, SpaceTiles, SpaceTileSize);
}

private void DrawText(
DrawingHandleScreen handle,
Box2 gridBounds,
Matrix3 transform,
Matrix3x2 transform,
Dictionary<int, List<Vector2i>> tileSets,
ushort tileSize)
{
Expand All @@ -103,7 +104,7 @@ private void DrawText(
if (!gridBounds.Contains(centre))
continue;

var worldCenter = transform.Transform(centre);
var worldCenter = Vector2.Transform(centre, transform);

var screenCenter = _eyeManager.WorldToScreen(worldCenter);

Expand All @@ -119,7 +120,7 @@ private void DrawText(
if (tileSets.TryGetValue(0, out var set))
{
var epicenter = set.First();
var worldCenter = transform.Transform((epicenter + Vector2Helpers.Half) * tileSize);
var worldCenter = Vector2.Transform((epicenter + Vector2Helpers.Half) * tileSize, transform);
var screenCenter = _eyeManager.WorldToScreen(worldCenter) + new Vector2(-24, -24);
var text = $"{Intensity[0]:F2}\nΣ={TotalIntensity:F1}\nΔ={Slope:F1}";
handle.DrawString(_font, screenCenter, text);
Expand Down Expand Up @@ -148,11 +149,12 @@ private void DrawWorld(in OverlayDrawArgs args)
if (SpaceTiles == null)
return;

gridBounds = Matrix3.Invert(SpaceMatrix).TransformBox(args.WorldBounds).Enlarged(2);
Matrix3x2.Invert(SpaceMatrix, out var invSpace);
gridBounds = invSpace.TransformBox(args.WorldBounds).Enlarged(2);
handle.SetTransform(SpaceMatrix);

DrawTiles(handle, gridBounds, SpaceTiles, SpaceTileSize);
handle.SetTransform(Matrix3.Identity);
handle.SetTransform(Matrix3x2.Identity);
}

private void DrawTiles(
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Alerts/ClientAlertsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ private void OnPlayerDetached(EntityUid uid, AlertsComponent component, LocalPla
ClearAlerts?.Invoke(this, EventArgs.Empty);
}

public void AlertClicked(AlertType alertType)
public void AlertClicked(ProtoId<AlertPrototype> alertType)
{
RaiseNetworkEvent(new ClickAlertEvent(alertType));
}
Expand Down
39 changes: 25 additions & 14 deletions Content.Client/Atmos/EntitySystems/GasTileOverlaySystem.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Content.Client.Atmos.Overlays;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.EntitySystems;
using JetBrains.Annotations;
Expand Down Expand Up @@ -36,28 +37,38 @@ public override void Shutdown()

private void OnHandleState(EntityUid gridUid, GasTileOverlayComponent comp, ref ComponentHandleState args)
{
if (args.Current is not GasTileOverlayState state)
return;
Dictionary<Vector2i, GasOverlayChunk> modifiedChunks;

// is this a delta or full state?
if (!state.FullState)
switch (args.Current)
{
foreach (var index in comp.Chunks.Keys)
// is this a delta or full state?
case GasTileOverlayDeltaState delta:
{
if (!state.AllChunks!.Contains(index))
comp.Chunks.Remove(index);
modifiedChunks = delta.ModifiedChunks;
foreach (var index in comp.Chunks.Keys)
{
if (!delta.AllChunks.Contains(index))
comp.Chunks.Remove(index);
}

break;
}
}
else
{
foreach (var index in comp.Chunks.Keys)
case GasTileOverlayState state:
{
if (!state.Chunks.ContainsKey(index))
comp.Chunks.Remove(index);
modifiedChunks = state.Chunks;
foreach (var index in comp.Chunks.Keys)
{
if (!state.Chunks.ContainsKey(index))
comp.Chunks.Remove(index);
}

break;
}
default:
return;
}

foreach (var (index, data) in state.Chunks)
foreach (var (index, data) in modifiedChunks)
{
comp.Chunks[index] = data;
}
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ protected override void Draw(in OverlayDrawArgs args)
DrawData(msg, handle);
}

handle.SetTransform(Matrix3.Identity);
handle.SetTransform(Matrix3x2.Identity);
}

private void DrawData(DebugMessage msg,
Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Atmos/Overlays/GasTileOverlay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ protected override void Draw(in OverlayDrawArgs args)

var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv();
state.drawHandle.SetTransform(worldMatrix);
var floatBounds = invMatrix.TransformBox(in state.WorldBounds).Enlarged(grid.TileSize);
var floatBounds = invMatrix.TransformBox(state.WorldBounds).Enlarged(grid.TileSize);
var localBounds = new Box2i(
(int) MathF.Floor(floatBounds.Left),
(int) MathF.Floor(floatBounds.Bottom),
Expand Down Expand Up @@ -249,7 +249,7 @@ protected override void Draw(in OverlayDrawArgs args)
});

drawHandle.UseShader(null);
drawHandle.SetTransform(Matrix3.Identity);
drawHandle.SetTransform(Matrix3x2.Identity);
}

private void DrawMapOverlay(
Expand Down
6 changes: 5 additions & 1 deletion Content.Client/Audio/AmbientSoundSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,11 @@ private void ProcessNearbyAmbience(TransformComponent playerXform)
.WithMaxDistance(comp.Range);

var stream = _audio.PlayEntity(comp.Sound, Filter.Local(), uid, false, audioParams);
_playingSounds[comp] = (stream.Value.Entity, comp.Sound, key);

if (stream == null)
continue;

_playingSounds[comp] = (stream!.Value.Entity, comp.Sound, key);
playingCount++;

if (_playingSounds.Count >= _maxAmbientCount)
Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Audio/ClientGlobalSoundSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private void PlayAdminSound(AdminSoundEvent soundEvent)
if(!_adminAudioEnabled) return;

var stream = _audio.PlayGlobal(soundEvent.Filename, Filter.Local(), false, soundEvent.AudioParams);
_adminAudio.Add(stream.Value.Entity);
_adminAudio.Add(stream!.Value.Entity);
}

private void PlayStationEventMusic(StationEventMusicEvent soundEvent)
Expand All @@ -76,7 +76,7 @@ private void PlayStationEventMusic(StationEventMusicEvent soundEvent)
if(!_eventAudioEnabled || _eventAudio.ContainsKey(soundEvent.Type)) return;

var stream = _audio.PlayGlobal(soundEvent.Filename, Filter.Local(), false, soundEvent.AudioParams);
_eventAudio.Add(soundEvent.Type, stream.Value.Entity);
_eventAudio.Add(soundEvent.Type, stream!.Value.Entity);
}

private void PlayGameSound(GameGlobalSoundEvent soundEvent)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Audio/ContentAudioSystem.AmbientMusic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ private void UpdateAmbientMusic()
track.ToString(),
Filter.Local(),
false,
AudioParams.Default.WithVolume(_musicProto.Sound.Params.Volume + _volumeSlider));
AudioParams.Default.WithVolume(_musicProto.Sound.Params.Volume + _volumeSlider))!;

_ambientMusicStream = strim.Value.Entity;

Expand Down
6 changes: 5 additions & 1 deletion Content.Client/Audio/ContentAudioSystem.LobbyMusic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,11 @@ private void PlaySoundtrack(string soundtrackFilename)
false,
_lobbySoundtrackParams.WithVolume(_lobbySoundtrackParams.Volume + SharedAudioSystem.GainToVolume(_configManager.GetCVar(CCVars.LobbyMusicVolume)))
);
if (playResult.Value.Entity == default)

if (playResult == null)
return;

if (playResult!.Value.Entity == default)
{
_sawmill.Warning(
$"Tried to play lobby soundtrack '{{Filename}}' using {nameof(SharedAudioSystem)}.{nameof(SharedAudioSystem.PlayGlobal)} but it returned default value of EntityUid!",
Expand Down
3 changes: 3 additions & 0 deletions Content.Client/Body/Components/BrainComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
namespace Content.Client.Body.Components;
[RegisterComponent]
public sealed partial class BrainComponent : Component { }
3 changes: 3 additions & 0 deletions Content.Client/Body/Components/LungComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
namespace Content.Client.Body.Components;
[RegisterComponent]
public sealed partial class LungComponent : Component { }
Loading
Loading