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 #360

Merged
merged 384 commits into from
Jan 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
384 commits
Select commit Hold shift + click to select a range
6c9270d
Automatic Changelog Update (#1313)
SimpleStation14 Dec 5, 2024
978173e
More Bug Fixes (#1311)
sleepyyapril Dec 5, 2024
1b15668
Automatic Changelog Update (#1311)
SimpleStation14 Dec 5, 2024
32e17a6
ChemMaster Sorting (#1310)
sleepyyapril Dec 5, 2024
01a13e3
Automatic Changelog Update (#1310)
SimpleStation14 Dec 5, 2024
d69b516
Port Shipyards (#1314)
VMSolidus Dec 6, 2024
36cd6ca
Automatic Changelog Update (#1314)
SimpleStation14 Dec 6, 2024
1016a08
Port UserActivateInWorldEvent and BypassInteractionChecksComponent (#…
sleepyyapril Dec 6, 2024
54d15c0
Inverts the Check for Material Whitelist in CanChangeMaterialAmount (…
rbertoche Dec 6, 2024
f1b8f96
Build Your Own TEG! (#1316)
zelezniciar1 Dec 6, 2024
3d2cdd7
Automatic Changelog Update (#1316)
SimpleStation14 Dec 6, 2024
50eb217
Several Small Map Fixes to Europa (#1319)
rbertoche Dec 6, 2024
f4152a5
Automatic Changelog Update (#1319)
SimpleStation14 Dec 6, 2024
06a8cee
Fix Rules (#1321)
VMSolidus Dec 6, 2024
9989c4d
Automatic Changelog Update (#1321)
SimpleStation14 Dec 6, 2024
ec650c4
Uplink: Remove Deception Category (#1309)
sleepyyapril Dec 7, 2024
5d64873
Automatic Changelog Update (#1309)
SimpleStation14 Dec 7, 2024
0c60671
[Feat] Bring Back Die Glorious Death, Hijack And Ian's Meat Traitor O…
Remuchi Dec 7, 2024
3ae4370
Automatic Changelog Update (#1323)
SimpleStation14 Dec 7, 2024
c40af73
The Throwing Update (#1307)
angelofallars Dec 8, 2024
33f80d6
Automatic Changelog Update (#1307)
SimpleStation14 Dec 8, 2024
8216a6e
Replace Direct Uses of GameTicker Dictionary with `TryGetValue` (#332…
rbertoche Dec 9, 2024
ca7e576
Fix Debug Assert. (#1325)
sleepyyapril Dec 9, 2024
f913393
Fix Melee Weapon Attack Speed (#1330)
dge21 Dec 10, 2024
1592c0e
Automatic Changelog Update (#1330)
SimpleStation14 Dec 10, 2024
34209e6
CVar CharacterRequirement (#1322)
sleepyyapril Dec 10, 2024
49b9c34
Update Credits (#1326)
github-actions[bot] Dec 10, 2024
6b1feac
Back Out "Flash Now Flashes Black Instead of White. (#14642)" (#1331)
stellar-novas Dec 10, 2024
48951ff
Automatic Changelog Update (#1331)
SimpleStation14 Dec 10, 2024
142ff10
Nix housekeeping
stellar-novas Dec 10, 2024
a668d35
Nix Housekeeping (#1332)
DEATHB4DEFEAT Dec 11, 2024
3e93876
Port N14 Mapper Assets (#1315)
VMSolidus Dec 11, 2024
b4e9e44
Automatic Changelog Update (#1315)
SimpleStation14 Dec 11, 2024
0ed26ce
Billions Must Flip (#1318)
sleepyyapril Dec 11, 2024
39d250f
Automatic Changelog Update (#1318)
SimpleStation14 Dec 11, 2024
946b766
Re-Enable Clown/Mime Hardsuit and Clown Snoring (#1324)
angelofallars Dec 11, 2024
48d63ba
Automatic Changelog Update (#1324)
SimpleStation14 Dec 11, 2024
975c673
Blood Cult DLC 1: Make It an Actually Playable Game (Mode) (#1276)
Remuchi Dec 11, 2024
149afb6
Automatic Changelog Update (#1276)
SimpleStation14 Dec 11, 2024
5899f4e
Pistol-Whipping (Guns as Melee Weapons) (#1335)
angelofallars Dec 11, 2024
478e159
Automatic Changelog Update (#1335)
SimpleStation14 Dec 11, 2024
3e3ca59
Fix Interact Verb (#1346)
sleepyyapril Dec 14, 2024
f0e4612
Fix Ripley Hydraulic Clamp (#1344)
Kyoth25f Dec 14, 2024
6dcb367
Automatic Changelog Update (#1344)
SimpleStation14 Dec 14, 2024
c4c3e42
Salvage Magnet UI and Character Switching Height/Width Bug Fix (#1347)
sleepyyapril Dec 14, 2024
8ff7021
Automatic Changelog Update (#1347)
SimpleStation14 Dec 14, 2024
2a7a471
Update Credits (#1350)
github-actions[bot] Dec 15, 2024
3aa430f
Fix Bartender Mosin (#1337)
VMSolidus Dec 15, 2024
acec14d
Trait Purchasable Mentalic Powers (#1343)
VMSolidus Dec 15, 2024
adddc1d
Automatic Changelog Update (#1343)
SimpleStation14 Dec 15, 2024
59a55c9
Pointy Ears For Harpies And Arachne (#1348)
VMSolidus Dec 15, 2024
99d6169
Automatic Changelog Update (#1348)
SimpleStation14 Dec 15, 2024
4509a9d
Port Cosmatic Drift Arrivals (#1340)
VMSolidus Dec 15, 2024
9a1cda8
Automatic Changelog Update (#1340)
SimpleStation14 Dec 15, 2024
80f8348
More Dangerous Mindbreaking (#1249)
VMSolidus Dec 16, 2024
4d87be6
Automatic Changelog Update (#1249)
SimpleStation14 Dec 16, 2024
88edcd0
Redshirt And Brittle Bone Traits (#1352)
VMSolidus Dec 16, 2024
ed0e56a
Automatic Changelog Update (#1352)
SimpleStation14 Dec 16, 2024
f5d45d7
Jackboots Slowdown Mitigation (PORT) (#1342)
BlueHNT Dec 16, 2024
03dc85a
Automatic Changelog Update (#1342)
SimpleStation14 Dec 16, 2024
ec60940
Fix Redshirt & Brittle Bone Traits (#1355)
VMSolidus Dec 16, 2024
577126f
Example Hub Ad List (#1356)
VMSolidus Dec 17, 2024
a06b466
Saltern Update (#1357)
VMSolidus Dec 18, 2024
aab36bf
Automatic Changelog Update (#1357)
SimpleStation14 Dec 18, 2024
bf1b0d0
v237.3.0 (#1354)
sleepyyapril Dec 19, 2024
3c1ed56
Hotfix Saltern (#1359)
VMSolidus Dec 19, 2024
48413d6
Automatic Changelog Update (#1359)
SimpleStation14 Dec 19, 2024
452b911
Loadouts Debloating (Colorable Items) (#1364)
VMSolidus Dec 21, 2024
cd5a6f8
Automatic Changelog Update (#1364)
SimpleStation14 Dec 21, 2024
0674895
More Colorable Items (#1365)
VMSolidus Dec 21, 2024
cc1e52c
Automatic Changelog Update (#1365)
SimpleStation14 Dec 21, 2024
35c95a5
Make the EE Logo Match the Banner (#1361)
DEATHB4DEFEAT Dec 21, 2024
311b86e
Loadout Modular Functions (And Loadout Pets) (#1366)
VMSolidus Dec 22, 2024
18a751d
Automatic Changelog Update (#1366)
SimpleStation14 Dec 22, 2024
6fb1223
Plushies! (#1369)
juniwoofs Dec 22, 2024
5293b92
Automatic Changelog Update (#1369)
SimpleStation14 Dec 22, 2024
2fc1f25
Traits System Anticheat (#1358)
VMSolidus Dec 22, 2024
9d738c8
Automatic Changelog Update (#1358)
SimpleStation14 Dec 22, 2024
7f8d76e
Make Prisoner Not Shitter Role (#1341)
VMSolidus Dec 22, 2024
68cb9ea
Automatic Changelog Update (#1341)
SimpleStation14 Dec 22, 2024
a13d964
Fix Jittering (#1334)
sleepyyapril Dec 22, 2024
bfb32cf
Automatic Changelog Update (#1334)
SimpleStation14 Dec 22, 2024
589d5b3
Апстрим
Farrellka-dev Dec 23, 2024
17a0625
Merge branch 'master' into upstream
Farrellka-dev Dec 23, 2024
795e0c9
Eng Update
Farrellka-dev Dec 23, 2024
d6c47c2
Merge branch 'master' into upstream
Farrellka-dev Dec 23, 2024
6df8805
Eng Downgrade
Farrellka-dev Dec 23, 2024
af32aad
Merge branch 'upstream' of https://github.com/Farrellka-dev/Lost-Para…
Farrellka-dev Dec 23, 2024
ff5e45b
CCVar Fix
Farrellka-dev Dec 23, 2024
aa1069b
Sponsor Fix
Farrellka-dev Dec 23, 2024
a287610
fix
Farrellka-dev Dec 23, 2024
318ad11
lang & dream fix
Farrellka-dev Dec 23, 2024
96a078a
I want to see my dreams..
Farrellka-dev Dec 23, 2024
67d7811
good night...
Farrellka-dev Dec 23, 2024
d6fc2d8
lan
Farrellka-dev Dec 23, 2024
a0f96b7
elfslime fix
Farrellka-dev Dec 23, 2024
dc0e469
Mk58 del LP
Farrellka-dev Dec 23, 2024
5730dfc
elfslime fix 2
Farrellka-dev Dec 23, 2024
e9eeb2b
elf fix
Farrellka-dev Dec 23, 2024
9ce1af0
protofix
Farrellka-dev Dec 23, 2024
f12640a
HideSpawnMenu fix
Farrellka-dev Dec 23, 2024
b1bd1e3
SlowEater Fix
Farrellka-dev Dec 23, 2024
23405c9
some fix
Farrellka-dev Dec 23, 2024
5cedde6
norot
Farrellka-dev Dec 23, 2024
2e5d7fe
done
Farrellka-dev Dec 24, 2024
9121479
language start
Farrellka-dev Dec 24, 2024
d88a75f
language part 2
Farrellka-dev Dec 25, 2024
dff8c69
Basic Soft-Crit Implementation (#1370)
VMSolidus Dec 26, 2024
9430b90
Automatic Changelog Update (#1370)
SimpleStation14 Dec 26, 2024
5ba71d4
language end (no)
Farrellka-dev Dec 26, 2024
58a10b5
loadout & lang fix + Sec Eng Rework
Farrellka-dev Dec 26, 2024
b35dd4f
lang fix
Farrellka-dev Dec 26, 2024
3f3cdec
fix
Farrellka-dev Dec 27, 2024
00b07df
Merge branch 'master' into upstream
Farrellka-dev Dec 27, 2024
5d93af4
Fix Secrets
Farrellka-dev Dec 27, 2024
2431dfd
fix sponsor
Farrellka-dev Dec 27, 2024
4b8953a
Many Fixes
Farrellka-dev Dec 28, 2024
0b73377
Merge remote-tracking branch 'EE/master' into upstream
Farrellka-dev Dec 28, 2024
5293adb
Merge branch 'master' into upstream
Farrellka-dev Dec 28, 2024
2033458
Small Fix
Farrellka-dev Dec 28, 2024
2215cc5
Zealot fix
Farrellka-dev Dec 28, 2024
e1eaa24
KYS now, Zealot
Farrellka-dev Dec 28, 2024
fa2a09f
scream & gasp fix
Farrellka-dev Dec 28, 2024
a7d58ad
final
Farrellka-dev Dec 28, 2024
e33d229
really final
Farrellka-dev Dec 28, 2024
d58382d
i hate yml
Farrellka-dev Dec 28, 2024
87423e7
huh
Farrellka-dev Dec 28, 2024
fd833e8
drill
Farrellka-dev Dec 28, 2024
e865ac8
Merge branch 'master' into upstream
Farrellka-dev Dec 28, 2024
7f33bc8
Merge branch 'master' into upstream
Farrellka-dev Dec 28, 2024
06b28fb
Another Saltern Update (#1372)
VMSolidus Dec 29, 2024
2500a39
Automatic Changelog Update (#1372)
SimpleStation14 Dec 29, 2024
e1853c7
Remove Europa From Map Pool (#1380)
sleepyyapril Dec 30, 2024
8fd1a10
Automatic Changelog Update (#1380)
SimpleStation14 Dec 30, 2024
93446f1
Shadowkin Rework (#1200)
FoxxoTrystan Dec 30, 2024
fc3c43e
Automatic Changelog Update (#1200)
SimpleStation14 Dec 30, 2024
6cd17d7
Revert Bad "SS13" Action Bar (#1333)
DEATHB4DEFEAT Dec 30, 2024
7ab9339
Automatic Changelog Update (#1333)
SimpleStation14 Dec 30, 2024
a0b726a
Merge remote-tracking branch 'refs/remotes/EE/master' into upstream
Farrellka-dev Dec 30, 2024
11195c4
psionics trans fix
Farrellka-dev Dec 30, 2024
611c620
Merge branch 'master' into upstream
Farrellka-dev Dec 30, 2024
5b15739
Arrivals Tweaks (#1371)
VMSolidus Dec 30, 2024
e4a2c0c
Automatic Changelog Update (#1371)
SimpleStation14 Dec 30, 2024
eb1dde1
Adjusts Cargo Market (#1377)
BlueHNT Dec 30, 2024
7b36740
Automatic Changelog Update (#1377)
SimpleStation14 Dec 30, 2024
8d9f169
NERF WISPS (#1384)
VMSolidus Dec 30, 2024
ef865f4
Automatic Changelog Update (#1384)
SimpleStation14 Dec 30, 2024
5fd278f
Fix Mindbreaker and Soulbreaker Rounds Not Injecting Their Solutions.…
stellar-novas Dec 30, 2024
4d464ee
Automatic Changelog Update (#1378)
SimpleStation14 Dec 30, 2024
698bc8b
Port Even More N14 Assets (#1385)
VMSolidus Dec 31, 2024
98e8af5
Automatic Changelog Update (#1385)
SimpleStation14 Dec 31, 2024
3c9db94
Ports Shitmed Updates From Goob (#1387)
gluesniffler Dec 31, 2024
280aa4b
Automatic Changelog Update (#1387)
SimpleStation14 Dec 31, 2024
d0ea387
Fixes Broken Heights/Widths (#1390)
gluesniffler Jan 1, 2025
6e6caf8
Automatic Changelog Update (#1390)
SimpleStation14 Jan 1, 2025
2010e62
Merge remote-tracking branch 'EE/master' into upstream
Farrellka-dev Jan 1, 2025
964f3dd
glasses fix
Farrellka-dev Jan 1, 2025
c6bda1f
Merge branch 'upstream' of https://github.com/Farrellka-dev/Lost-Para…
Farrellka-dev Jan 1, 2025
8953067
my bad
Farrellka-dev Jan 1, 2025
c9b9b8d
Soft Crit walk true CCVars
Farrellka-dev Jan 1, 2025
3f8c531
prefix lang fix
Farrellka-dev Jan 1, 2025
eb27db6
Psionic Refactor Version 3 Part 1 (#1383)
VMSolidus Jan 1, 2025
71f2005
Automatic Changelog Update (#1383)
SimpleStation14 Jan 1, 2025
6dd8c09
Fix the Width Slider Not Translating Smoothly (#1391)
sapphirescript Jan 1, 2025
4a07f33
Automatic Changelog Update (#1391)
SimpleStation14 Jan 1, 2025
174ce76
Cherry Pick "Dynamic Radial Menus (#29678)" (#1393)
sapphirescript Jan 2, 2025
1c41e4d
Automatic Changelog Update (#1393)
SimpleStation14 Jan 2, 2025
93ed70a
Wizmerge for Station AI (#1351)
sleepyyapril Jan 2, 2025
c5ae013
More Psionic Admin Commands (#1394)
VMSolidus Jan 2, 2025
ea2845c
Automatic Changelog Update (#1394)
SimpleStation14 Jan 2, 2025
67f28df
Fix Emotes and Add Emote Icons (#1395)
sapphirescript Jan 2, 2025
039a026
Automatic Changelog Update (#1395)
SimpleStation14 Jan 2, 2025
83f5894
No Cocooning Yourself! (#1396)
sapphirescript Jan 2, 2025
2178869
Automatic Changelog Update (#1396)
SimpleStation14 Jan 2, 2025
5653069
Add Missing Localization for Supermatter Guide Entry (#1398)
sapphirescript Jan 2, 2025
f61b222
Fix EE's Most Pressing Issue (#1399)
sapphirescript Jan 2, 2025
760f22c
Automatic Changelog Update (#1398)
SimpleStation14 Jan 2, 2025
da8e260
Add White Cane to Loadouts (#1401)
sapphirescript Jan 2, 2025
63fcae1
Fix Kα Deficiency Not Having a Description (#1402)
sapphirescript Jan 2, 2025
db055a7
Automatic Changelog Update (#1402)
SimpleStation14 Jan 2, 2025
075a443
[Feat] CPR Impovements (#1405)
Remuchi Jan 2, 2025
7ef4ac9
Automatic Changelog Update (#1405)
SimpleStation14 Jan 2, 2025
7f17ae2
Add New Marking Category: Faces (#1400)
sapphirescript Jan 2, 2025
0002c8b
Automatic Changelog Update (#1400)
SimpleStation14 Jan 2, 2025
2e66dc9
Graytide Virus Event (#1293)
VMSolidus Jan 2, 2025
6586b62
Automatic Changelog Update (#1293)
SimpleStation14 Jan 2, 2025
0c0ac31
Add Trait Localization Integration Test (#1408)
sapphirescript Jan 2, 2025
731e14f
Generic Clothing Equip Functions (#1407)
VMSolidus Jan 2, 2025
c06f300
Fix Splash (#1403)
sapphirescript Jan 2, 2025
5f6285e
Automatic Changelog Update (#1403)
SimpleStation14 Jan 2, 2025
6744d6f
Update Credits (#1381)
github-actions[bot] Jan 2, 2025
d494c97
[Fix] Fixed Loadouts Spawning in Backpacks when Spawning via Cryopods…
Remuchi Jan 2, 2025
e946564
Automatic Changelog Update (#1406)
SimpleStation14 Jan 2, 2025
2688f31
Fix Shiva Ghost Role Missing Localization (#1404)
sapphirescript Jan 2, 2025
f411310
Automatic Changelog Update (#1404)
SimpleStation14 Jan 2, 2025
5767be1
Cherry Pick Haloperidol and Potassium Iodide (#1410)
sapphirescript Jan 2, 2025
1e9cb1c
Some MobState Refactoring (#1382)
VMSolidus Jan 2, 2025
1329ab9
Automatic Changelog Update (#1382)
SimpleStation14 Jan 2, 2025
9dcfc40
Fix Toggling Magboots Crashing the Server (#1413)
sleepyyapril Jan 3, 2025
7d6483c
Automatic Changelog Update (#1413)
SimpleStation14 Jan 3, 2025
fd3ef2a
Merge remote-tracking branch 'EE/master' into upstream
Farrellka-dev Jan 3, 2025
6db7414
new upstream fix
Farrellka-dev Jan 3, 2025
d2fe27c
new upstream proto fix
Farrellka-dev Jan 3, 2025
455665e
rsi fix
Farrellka-dev Jan 3, 2025
584c226
kms?..
Farrellka-dev Jan 3, 2025
3ec1138
uegh
Farrellka-dev Jan 3, 2025
05f0e53
Add Missing Language and Marking Localization Strings (#1420)
sapphirescript Jan 4, 2025
0a5ec01
Automatic Changelog Update (#1420)
SimpleStation14 Jan 4, 2025
c3cd234
lpp uplink fix
Farrellka-dev Jan 4, 2025
7702331
localize fix
Farrellka-dev Jan 4, 2025
678702a
localize fix 0
Farrellka-dev Jan 4, 2025
94d12c9
localize fix 1
Farrellka-dev Jan 4, 2025
7726d06
Religious Neckwear (Crucifix) And Gay Male Pin (#1416)
angelofallars Jan 4, 2025
b958425
Automatic Changelog Update (#1416)
SimpleStation14 Jan 4, 2025
1e356fb
Lamia & Segmented Entity System (#11)
VMSolidus Jan 4, 2025
3a54aff
Automatic Changelog Update (#11)
SimpleStation14 Jan 4, 2025
103d147
[Tweak] Cherry Pick White Dream's Cult Fixes (#1397)
Remuchi Jan 4, 2025
b16abb1
Automatic Changelog Update (#1397)
SimpleStation14 Jan 4, 2025
684a127
Make Crit/Death Traits Mutually Exclusive (#1418)
sapphirescript Jan 4, 2025
3022ee7
Automatic Changelog Update (#1418)
SimpleStation14 Jan 4, 2025
25af801
Add Language Localization Integration Test (#1419)
sapphirescript Jan 4, 2025
c6f5309
Add Marking Localization Test (#1421)
sapphirescript Jan 4, 2025
2b683a2
Add Missing Information to Ifrit Ghost Role (#1414)
sapphirescript Jan 4, 2025
744b4c4
Automatic Changelog Update (#1414)
SimpleStation14 Jan 4, 2025
5f8ac59
Massening Vacsuits And Hardsuits (#1411)
VMSolidus Jan 4, 2025
356bc33
Automatic Changelog Update (#1411)
SimpleStation14 Jan 4, 2025
2b0366d
localize fix 2
Farrellka-dev Jan 4, 2025
64a23a1
Merge branch 'master' into upstream
Farrellka-dev Jan 4, 2025
0f57ad0
adm assist now adju
Farrellka-dev Jan 4, 2025
d09f611
seceng fix
Farrellka-dev Jan 4, 2025
07be20d
i need ctrl s more
Farrellka-dev Jan 4, 2025
09e4a89
fx
Farrellka-dev Jan 4, 2025
78edbab
Add Chatstack (#1422)
RedFoxIV Jan 4, 2025
0ad0cce
Automatic Changelog Update (#1422)
SimpleStation14 Jan 4, 2025
72c01d7
Meta Station For EE (#1417)
Mike32oz Jan 4, 2025
87c7979
Automatic Changelog Update (#1417)
SimpleStation14 Jan 4, 2025
613adba
en fix
Farrellka-dev Jan 4, 2025
30278a8
Merge remote-tracking branch 'EE/master' into upstream
Farrellka-dev Jan 4, 2025
f6dff32
adju
Farrellka-dev Jan 4, 2025
c74dbcc
fix
Farrellka-dev Jan 4, 2025
85ca51d
...
Farrellka-dev Jan 4, 2025
5cd5a7e
adju map & uplink fix
Farrellka-dev Jan 4, 2025
e0e6b97
huh
Farrellka-dev Jan 4, 2025
d79b5f8
bueegh
Farrellka-dev Jan 4, 2025
c1aeeb9
sinditrans fix
Farrellka-dev Jan 4, 2025
e9e7673
lang fix 2
Farrellka-dev Jan 4, 2025
1e3d5e3
lang fix 3
Farrellka-dev Jan 4, 2025
f3315b5
lang fix 4
Farrellka-dev Jan 4, 2025
09490d3
woops
Farrellka-dev Jan 4, 2025
5f92bf8
a eto bleh
Farrellka-dev Jan 4, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
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
6 changes: 3 additions & 3 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
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="
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
use nix
45 changes: 25 additions & 20 deletions Content.Client/Access/UI/AccessOverriderBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.Containers.ItemSlots;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.AccessOverriderComponent;

Expand All @@ -23,45 +24,49 @@ protected override void Open()
{
base.Open();

_window = this.CreateWindow<AccessOverriderWindow>();
RefreshAccess();
_window.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;
_window.OnSubmit += SubmitData;

_window.PrivilegedIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(PrivilegedIdCardSlotId));
}

public override void OnProtoReload(PrototypesReloadedEventArgs args)
{
base.OnProtoReload(args);
if (!args.WasModified<AccessLevelPrototype>())
return;

RefreshAccess();

if (State != null)
_window?.UpdateState(_prototypeManager, (AccessOverriderBoundUserInterfaceState) State);
}

private void RefreshAccess()
{
List<ProtoId<AccessLevelPrototype>> accessLevels;

if (EntMan.TryGetComponent<AccessOverriderComponent>(Owner, out var accessOverrider))
{
accessLevels = accessOverrider.AccessLevels;
accessLevels.Sort();
}

else
{
accessLevels = new List<ProtoId<AccessLevelPrototype>>();
_accessOverriderSystem.Log.Error($"No AccessOverrider component found for {EntMan.ToPrettyString(Owner)}!");
}

_window = new AccessOverriderWindow(this, _prototypeManager, accessLevels)
{
Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName
};

_window.PrivilegedIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(PrivilegedIdCardSlotId));

_window.OnClose += Close;
_window.OpenCentered();
}

protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;

_window?.Dispose();
_window?.SetAccessLevels(_prototypeManager, accessLevels);
}

protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
var castState = (AccessOverriderBoundUserInterfaceState) state;
_window?.UpdateState(castState);
_window?.UpdateState(_prototypeManager, castState);
}

public void SubmitData(List<ProtoId<AccessLevelPrototype>> newAccessList)
Expand Down
51 changes: 23 additions & 28 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,24 @@ namespace Content.Client.Access.UI
[GenerateTypedNameReferences]
public sealed partial class AccessOverriderWindow : DefaultWindow
{
[Dependency] private readonly ILogManager _logManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;

private readonly AccessOverriderBoundUserInterface _owner;
private readonly Dictionary<string, Button> _accessButtons = new();

public AccessOverriderWindow(AccessOverriderBoundUserInterface owner, IPrototypeManager prototypeManager,
List<ProtoId<AccessLevelPrototype>> accessLevels)
public event Action<List<ProtoId<AccessLevelPrototype>>>? OnSubmit;

public AccessOverriderWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
var logMill = _logManager.GetSawmill(SharedAccessOverriderSystem.Sawmill);
}

_owner = owner;
public void SetAccessLevels(IPrototypeManager protoManager, List<ProtoId<AccessLevelPrototype>> accessLevels)
{
_accessButtons.Clear();
AccessLevelGrid.DisposeAllChildren();

foreach (var access in accessLevels)
{
if (!prototypeManager.TryIndex(access, out var accessLevel))
if (!protoManager.TryIndex(access, out var accessLevel))
{
logMill.Error($"Unable to find accesslevel for {access}");
continue;
}

Expand All @@ -44,11 +42,16 @@ public AccessOverriderWindow(AccessOverriderBoundUserInterface owner, IPrototype

AccessLevelGrid.AddChild(newButton);
_accessButtons.Add(accessLevel.ID, newButton);
newButton.OnPressed += _ => SubmitData();
newButton.OnPressed += _ =>
{
OnSubmit?.Invoke(
// Iterate over the buttons dictionary, filter by `Pressed`, only get key from the key/value pair
_accessButtons.Where(x => x.Value.Pressed).Select(x => new ProtoId<AccessLevelPrototype>(x.Key)).ToList());
};
}
}

public void UpdateState(AccessOverriderBoundUserInterfaceState state)
public void UpdateState(IPrototypeManager protoManager, AccessOverriderBoundUserInterfaceState state)
{
PrivilegedIdLabel.Text = state.PrivilegedIdName;
PrivilegedIdButton.Text = state.IsPrivilegedIdPresent
Expand All @@ -66,11 +69,11 @@ public void UpdateState(AccessOverriderBoundUserInterfaceState state)

if (state.MissingPrivilegesList != null && state.MissingPrivilegesList.Any())
{
List<string> missingPrivileges = new List<string>();
var missingPrivileges = new List<string>();

foreach (string tag in state.MissingPrivilegesList)
{
string privilege = Loc.GetString(_prototypeManager.Index<AccessLevelPrototype>(tag)?.Name ?? "generic-unknown");
var privilege = Loc.GetString(protoManager.Index<AccessLevelPrototype>(tag)?.Name ?? "generic-unknown");
missingPrivileges.Add(privilege);
}

Expand All @@ -83,20 +86,12 @@ public void UpdateState(AccessOverriderBoundUserInterfaceState state)
foreach (var (accessName, button) in _accessButtons)
{
button.Disabled = !interfaceEnabled;
if (interfaceEnabled)
{
button.Pressed = state.TargetAccessReaderIdAccessList?.Contains(accessName) ?? false;
button.Disabled = (!state.AllowedModifyAccessList?.Contains(accessName)) ?? true;
}
}
}
if (!interfaceEnabled)
return;

private void SubmitData()
{
_owner.SubmitData(

// Iterate over the buttons dictionary, filter by `Pressed`, only get key from the key/value pair
_accessButtons.Where(x => x.Value.Pressed).Select(x => new ProtoId<AccessLevelPrototype>(x.Key)).ToList());
button.Pressed = state.TargetAccessReaderIdAccessList?.Contains<ProtoId<AccessLevelPrototype>>(accessName) ?? false;
button.Disabled = (!state.AllowedModifyAccessList?.Contains<ProtoId<AccessLevelPrototype>>(accessName)) ?? true;
}
}
}
}
34 changes: 16 additions & 18 deletions Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
using Content.Shared.Access.Systems;
using Content.Shared.StatusIcon;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;
using Robust.Shared.Prototypes;

namespace Content.Client.Access.UI
{
Expand All @@ -18,16 +22,18 @@ protected override void Open()
{
base.Open();

_window?.Dispose();
_window = new AgentIDCardWindow(this);
if (State != null)
UpdateState(State);
_window = this.CreateWindow<AgentIDCardWindow>();

_window.OpenCentered();

_window.OnClose += Close;
_window.OnNameChanged += OnNameChanged;
_window.OnJobChanged += OnJobChanged;
_window.OnJobIconChanged += OnJobIconChanged;
_window.OnNumberChanged += OnNumberChanged; // DeltaV
}

// DeltaV - Add number change handler
private void OnNumberChanged(uint newNumber)
{
SendMessage(new AgentIDCardNumberChangedMessage(newNumber));
}

private void OnNameChanged(string newName)
Expand All @@ -40,7 +46,7 @@ private void OnJobChanged(string newJob)
SendMessage(new AgentIDCardJobChangedMessage(newJob));
}

public void OnJobIconChanged(string newJobIconId)
public void OnJobIconChanged(ProtoId<JobIconPrototype> newJobIconId)
{
SendMessage(new AgentIDCardJobIconChangedMessage(newJobIconId));
}
Expand All @@ -57,16 +63,8 @@ protected override void UpdateState(BoundUserInterfaceState state)

_window.SetCurrentName(cast.CurrentName);
_window.SetCurrentJob(cast.CurrentJob);
_window.SetAllowedIcons(cast.Icons, cast.CurrentJobIconId);
}

protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;

_window?.Dispose();
_window.SetAllowedIcons(cast.CurrentJobIconId);
_window.SetCurrentNumber(cast.CurrentNumber); // DeltaV
}
}
}
15 changes: 8 additions & 7 deletions Content.Client/Access/UI/AgentIDCardWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
<LineEdit Name="NameLineEdit" />
<Label Name="CurrentJob" Text="{Loc 'agent-id-card-current-job'}" />
<LineEdit Name="JobLineEdit" />
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'agent-id-card-job-icon-label'}"/>
<Control HorizontalExpand="True" MinSize="50 0"/>
<GridContainer Name="IconGrid" Columns="10">
<!-- Job icon buttons are generated in the code -->
</GridContainer>
</BoxContainer>
<!-- DeltaV - Add NanoChat number field -->
<Label Name="CurrentNumber" Text="{Loc 'agent-id-card-current-number'}" />
<LineEdit Name="NumberLineEdit" PlaceHolder="#0000" />
<!-- DeltaV end -->
<Label Text="{Loc 'agent-id-card-job-icon-label'}"/>
<GridContainer Name="IconGrid" Columns="10">
<!-- Job icon buttons are generated in the code -->
</GridContainer>
</BoxContainer>
</DefaultWindow>
67 changes: 49 additions & 18 deletions Content.Client/Access/UI/AgentIDCardWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
using System.Numerics;
using System.Linq;

namespace Content.Client.Access.UI
{
Expand All @@ -17,40 +18,72 @@ public sealed partial class AgentIDCardWindow : DefaultWindow
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IEntitySystemManager _entitySystem = default!;
private readonly SpriteSystem _spriteSystem;
private readonly AgentIDCardBoundUserInterface _bui;

private const int JobIconColumnCount = 10;

private const int MaxNumberLength = 4; // DeltaV - Same as NewChatPopup

public event Action<string>? OnNameChanged;
public event Action<string>? OnJobChanged;

public AgentIDCardWindow(AgentIDCardBoundUserInterface bui)
public event Action<uint>? OnNumberChanged; // DeltaV - Add event for number changes

public event Action<ProtoId<JobIconPrototype>>? OnJobIconChanged;

public AgentIDCardWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_spriteSystem = _entitySystem.GetEntitySystem<SpriteSystem>();
_bui = bui;

NameLineEdit.OnTextEntered += e => OnNameChanged?.Invoke(e.Text);
NameLineEdit.OnFocusExit += e => OnNameChanged?.Invoke(e.Text);

JobLineEdit.OnTextEntered += e => OnJobChanged?.Invoke(e.Text);
JobLineEdit.OnFocusExit += e => OnJobChanged?.Invoke(e.Text);

// DeltaV - Add handlers for number changes
NumberLineEdit.OnTextEntered += OnNumberEntered;
NumberLineEdit.OnFocusExit += OnNumberEntered;

// DeltaV - Filter to only allow digits
NumberLineEdit.OnTextChanged += args =>
{
if (args.Text.Length > MaxNumberLength)
{
NumberLineEdit.Text = args.Text[..MaxNumberLength];
}

// Filter to digits only
var newText = string.Concat(args.Text.Where(char.IsDigit));
if (newText != args.Text)
NumberLineEdit.Text = newText;
};
}

public void SetAllowedIcons(HashSet<string> icons, string currentJobIconId)
// DeltaV - Add number validation and event
private void OnNumberEntered(LineEdit.LineEditEventArgs args)
{
if (uint.TryParse(args.Text, out var number) && number > 0)
OnNumberChanged?.Invoke(number);
}

// DeltaV - Add setter for current number
public void SetCurrentNumber(uint? number)
{
NumberLineEdit.Text = number?.ToString("D4") ?? "";
}

public void SetAllowedIcons(string currentJobIconId)
{
IconGrid.DisposeAllChildren();

var jobIconGroup = new ButtonGroup();
var jobIconButtonGroup = new ButtonGroup();
var i = 0;
foreach (var jobIconId in icons)
var icons = _prototypeManager.EnumeratePrototypes<JobIconPrototype>().Where(icon => icon.AllowSelection).ToList();
icons.Sort((x, y) => string.Compare(x.LocalizedJobName, y.LocalizedJobName, StringComparison.CurrentCulture));
foreach (var jobIcon in icons)
{
if (!_prototypeManager.TryIndex<StatusIconPrototype>(jobIconId, out var jobIcon))
{
continue;
}

String styleBase = StyleBase.ButtonOpenBoth;
var modulo = i % JobIconColumnCount;
if (modulo == 0)
Expand All @@ -64,25 +97,23 @@ public void SetAllowedIcons(HashSet<string> icons, string currentJobIconId)
Access = AccessLevel.Public,
StyleClasses = { styleBase },
MaxSize = new Vector2(42, 28),
Group = jobIconGroup,
Pressed = i == 0,
Group = jobIconButtonGroup,
Pressed = currentJobIconId == jobIcon.ID,
ToolTip = jobIcon.LocalizedJobName
};

// Generate buttons textures
TextureRect jobIconTexture = new TextureRect
var jobIconTexture = new TextureRect
{
Texture = _spriteSystem.Frame0(jobIcon.Icon),
TextureScale = new Vector2(2.5f, 2.5f),
Stretch = TextureRect.StretchMode.KeepCentered,
};

jobIconButton.AddChild(jobIconTexture);
jobIconButton.OnPressed += _ => _bui.OnJobIconChanged(jobIcon.ID);
jobIconButton.OnPressed += _ => OnJobIconChanged?.Invoke(jobIcon.ID);
IconGrid.AddChild(jobIconButton);

if (jobIconId.Equals(currentJobIconId))
jobIconButton.Pressed = true;

i++;
}
}
Expand Down
Loading
Loading