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

August Upstream Merge #223

Merged
merged 940 commits into from
Aug 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
940 commits
Select commit Hold shift + click to select a range
8acac89
(Re)Adds open bolt animations for gun sprites (#17219)
TaralGit Aug 13, 2023
551de79
Automatic changelog update
PJBot Aug 13, 2023
d7fa5b7
Remove atmos device dependency on game timer (#18847)
Partmedia Aug 13, 2023
2a5387f
box update (#19055)
Emisse Aug 13, 2023
3cea7f2
bagel update (#19058)
Emisse Aug 13, 2023
9bd47c0
Add whitelist check to hand gathering (#19053)
metalgearsloth Aug 13, 2023
8fb38b7
Nerf pickaxe + drill slightly (#19056)
metalgearsloth Aug 13, 2023
3fc81bc
Fix bolt-less gun cycling (#19051)
metalgearsloth Aug 13, 2023
8d0d09b
Fix bolt-open for debug swep (#19057)
metalgearsloth Aug 13, 2023
6edd731
Fixing spilling empty containers (#19048)
LightVillet Aug 13, 2023
812ccea
Borg tweaks (#19046)
EmoGarbage404 Aug 13, 2023
22ece21
add spare men + adjust up one row (#19047)
Aug 13, 2023
3af1cc0
Botany tweaks vol. 2.5 (#19039)
Doru991 Aug 13, 2023
998c6f3
Secret door (#19023)
Nimfar11 Aug 13, 2023
1ff125a
bola buff (#18998)
Errant-4 Aug 13, 2023
ef74060
Automatic changelog update
PJBot Aug 13, 2023
a554ad2
Vehicle stun/sleep immunity fix (#18962)
Doru991 Aug 13, 2023
16336d1
Automatic changelog update
PJBot Aug 13, 2023
2b6cbda
Fix inconsistent vending machine sprites (#18953)
potato1234x Aug 13, 2023
e38d000
Automatic changelog update
PJBot Aug 13, 2023
bfa6b3b
Light laser (#18950)
Errant-4 Aug 13, 2023
642d9b0
bloodred magboots buff (#18948)
Ilya246 Aug 13, 2023
ae5dcba
Holoclown (clown only) syndicate uplink item. (#18966)
brainfood1183 Aug 13, 2023
ca9b632
Automatic changelog update
PJBot Aug 13, 2023
7527036
Laser namechange and some buffs (#18951)
Errant-4 Aug 13, 2023
0c8973d
Add guidebook entries for the access configurator and installing airl…
chromiumboy Aug 13, 2023
3028e0e
Automatic changelog update
PJBot Aug 13, 2023
88f7ba0
pyrotechnic metabolism updates (#18947)
CrigCrag Aug 13, 2023
3ab6e99
Automatic changelog update
PJBot Aug 13, 2023
e6b8d18
Make jugs printable and bigger (#18941)
CrigCrag Aug 13, 2023
2c4ca38
chemical elements metabolism updates (#18949)
CrigCrag Aug 13, 2023
ade5cac
make acids hurt more (#18938)
CrigCrag Aug 13, 2023
1df6508
Support weighted tile variantize (#18940)
Vordenburg Aug 13, 2023
18c8d81
Automatic changelog update
PJBot Aug 13, 2023
c90de7c
Fix stamina indicator on rejuvenate (#18914)
Doru991 Aug 13, 2023
cd80ba3
Specify drawdepth layers for some objects (#18917)
Vordenburg Aug 13, 2023
fb5f8da
Wheelchair fixes (#18901)
Morb0 Aug 13, 2023
f1af1ba
Revert "Disable wheelchair trait (#18896)" (#19062)
Emisse Aug 13, 2023
f189b73
Arachnid rework (#18631)
PixelTheKermit Aug 13, 2023
b8aea4c
Automatic changelog update
PJBot Aug 13, 2023
6fd3d3a
Update migration.yml (#19063)
Emisse Aug 13, 2023
2a042b2
fix bagel cringe (#19064)
Emisse Aug 13, 2023
2b14944
Remove invalid non-entity rename migration (#19068)
DrSmugleaf Aug 13, 2023
dfa9b45
Fix crafting steel tiles requiring silk (#19071)
PixelTheKermit Aug 13, 2023
0c7dd30
Automatic changelog update
PJBot Aug 13, 2023
229df7c
Add cocoa cultivation (#18366)
FillerVK Aug 13, 2023
0336371
Automatic changelog update
PJBot Aug 13, 2023
47d1bd1
add back swab locale (#19075)
VasilisThePikachu Aug 13, 2023
8b1af46
add throwing star (#18700)
deltanedas Aug 13, 2023
19326be
Expand PVS entities to all players at round end (#18963)
Vordenburg Aug 13, 2023
ff4f01e
Automatic changelog update
PJBot Aug 13, 2023
2f2df5c
Fix DNA scrambler (#19079)
EmoGarbage404 Aug 13, 2023
7c419df
Fix scientific notation showing in pressure description. (#19076)
Titian3 Aug 13, 2023
9dfe21b
Automatic changelog update
PJBot Aug 13, 2023
ae2dcc8
saltern update (#19067)
deltanedas Aug 13, 2023
4ccc8a0
Improve paper stamping experience (#17135)
eoineoineoin Aug 13, 2023
080e923
Automatic changelog update
PJBot Aug 13, 2023
1e36976
Arachnid zombie hands fix (#19073)
PixelTheKermit Aug 13, 2023
d842b5e
Automatic changelog update
PJBot Aug 13, 2023
23b8c41
Fix round-summary crash (#19090)
ElectroJr Aug 13, 2023
db33c5d
Fix inventory UI not marking inputs as handled (#19097)
ElectroJr Aug 13, 2023
4538c2d
Automatic changelog update
PJBot Aug 13, 2023
7ab11dd
Fix remove hands popup and remove single hand admin smite not being a…
DrSmugleaf Aug 13, 2023
c7bff10
Automatic changelog update
PJBot Aug 13, 2023
35d7656
Add ahelp typing indicator for admins (#19060)
DrSmugleaf Aug 13, 2023
6a4d2a7
Automatic changelog update
PJBot Aug 13, 2023
459660e
Fix Murdertron 5000 a/k/a Emagged recycler (#18892)
misandrie Aug 13, 2023
305bec3
Automatic changelog update
PJBot Aug 13, 2023
17808a5
Fix debug error when opening the ahelp ui before joining a game (#19069)
DrSmugleaf Aug 13, 2023
7582474
Lint more const string prototypes (#18922)
Vordenburg Aug 14, 2023
d4e7f44
Origin Station Update 13.06.2023 (Borg, Trash) (#19036)
brainfood1183 Aug 14, 2023
9094695
Fix new players added to admin logs always defaulting to selected (#1…
DrSmugleaf Aug 14, 2023
eba1d52
Automatic changelog update
PJBot Aug 14, 2023
694a6cf
Add Destructible SpawnGasBehavior (#18965)
Vordenburg Aug 14, 2023
494a8cd
Automatic changelog update
PJBot Aug 14, 2023
6a125b5
Fix various IC states not counting as dead (#19049)
EmoGarbage404 Aug 14, 2023
2d38242
Automatic changelog update
PJBot Aug 14, 2023
d433ded
RPED fixes (#19050)
EmoGarbage404 Aug 14, 2023
10dc51c
Automatic changelog update
PJBot Aug 14, 2023
73158ec
Require severity to be set when creating and editing notes (#19059)
DrSmugleaf Aug 14, 2023
ce42203
Automatic changelog update
PJBot Aug 14, 2023
55e9a2f
Nuke detonation sound effect is global again (#19077)
VasilisThePikachu Aug 14, 2023
06c7890
Automatic changelog update
PJBot Aug 14, 2023
9c5f566
Added missing chameleon tags (#17655)
crazybrain23 Aug 14, 2023
9f6037a
Automatic changelog update
PJBot Aug 14, 2023
603f990
engi crate recolor (#19094)
Emisse Aug 14, 2023
518bf77
Revert "add syndies+nukies gamemode" (#19105)
EmoGarbage404 Aug 14, 2023
6a41a55
Fixed an issue where airlock safeguards could not be applied to glass…
chromiumboy Aug 14, 2023
97d0fdc
Automatic changelog update
PJBot Aug 14, 2023
b3c8dff
o2 crate recolour (#19113)
Emisse Aug 14, 2023
3268ea3
plastic hydro crates (#19112)
Emisse Aug 14, 2023
5ba1a41
Trim migration.yml (#19081)
ElectroJr Aug 14, 2023
3b7a23b
Update paperstamp.swsl (#19114)
moonheart08 Aug 14, 2023
d7eb3bf
Pipe painter (now with airlock painter) (#19031)
c4llv07e Aug 14, 2023
e85834d
Automatic changelog update
PJBot Aug 14, 2023
6bbf052
Fixed cargo's gas canister purchase prices (#19093)
Interrobang01 Aug 14, 2023
d71472c
Automatic changelog update
PJBot Aug 14, 2023
912aba5
Fix some non-norot sprites (#19130)
mirrorcult Aug 14, 2023
9ccad04
Automatic changelog update
PJBot Aug 14, 2023
ac2ac4b
Fix recipes for translations (#19133)
LightVillet Aug 14, 2023
5668579
Add cooldown to bike horn implant (#19128)
mirrorcult Aug 14, 2023
73386af
Automatic changelog update
PJBot Aug 14, 2023
7a70222
fix attack stamina cost check (#18872)
Errant-4 Aug 14, 2023
da62b05
Automatic changelog update
PJBot Aug 14, 2023
5ce47fb
Add ability to burn papers +Flammable tweaks. (#18955)
mhamsterr Aug 14, 2023
40e1286
Fix to allow no severity on messages and watchlists (#19125)
Titian3 Aug 14, 2023
979aa8c
Automatic changelog update
PJBot Aug 14, 2023
bee2768
add binary to observer (#19141)
crazybrain23 Aug 14, 2023
ee5974e
Automatic changelog update
PJBot Aug 14, 2023
024d2f3
Singularity Stability Tweaks (fixed) (#19135)
crazybrain23 Aug 14, 2023
f6f0351
Fix monkeys not getting rotated on crit/death (#19132)
mirrorcult Aug 14, 2023
ec02907
Various bar-related fixes (#19126)
mirrorcult Aug 14, 2023
9315a0f
Fix having to reopen ahelp and popped-out ahelp windows after rounds …
DrSmugleaf Aug 14, 2023
4cdbe11
Make faded notes pop in on hover (#19101)
DrSmugleaf Aug 14, 2023
5262ecc
Automatic changelog update
PJBot Aug 14, 2023
d7344bd
Fix editing a watchlist note temporarily making it appear as a low se…
DrSmugleaf Aug 14, 2023
088d489
Automatic changelog update
PJBot Aug 14, 2023
2d98087
box update (#19144)
Emisse Aug 14, 2023
d89bc02
operating table fix (#19092)
Emisse Aug 14, 2023
6e61895
Automatic changelog update
PJBot Aug 14, 2023
1edd6e5
temperature reset on rejuvenate (#19142)
deltanedas Aug 14, 2023
31f5f1c
Make wielding precede cycling in event subs (#18915)
Vordenburg Aug 14, 2023
10e2e74
Ritual chair no longer deletes people when disassembled (#19145)
TheArturZh Aug 14, 2023
1b2f886
Automatic changelog update
PJBot Aug 14, 2023
8b0eb7e
Add Mystery Figure Crate (#19134)
Deeeeja Aug 14, 2023
7ddee71
More borg tweaks (#19143)
EmoGarbage404 Aug 14, 2023
b17c107
Automatic changelog update
PJBot Aug 14, 2023
4470608
Add plastic sheets chemical recipe (#18865)
mhamsterr Aug 14, 2023
76688c6
Automatic changelog update
PJBot Aug 14, 2023
a13da27
Throwing fixes (#18576)
metalgearsloth Aug 14, 2023
a7583eb
Construct and upgrade mini gravity generator (#18568)
JustArt1m Aug 15, 2023
76b0e7f
Automatic changelog update
PJBot Aug 15, 2023
30222a9
Add doafter when disconnecting someone else's internals (#19148)
DrSmugleaf Aug 15, 2023
66ad1ff
Realign plunger hat (#19147)
EmoGarbage404 Aug 15, 2023
b33aad7
Automatic changelog update
PJBot Aug 15, 2023
71f5e38
Fix search being case sensitive for admin logs from uncached db round…
DrSmugleaf Aug 15, 2023
cfccb59
Lavaland chasms (#19154)
mirrorcult Aug 15, 2023
cabc834
Fix combat action prediction (#19152)
ElectroJr Aug 15, 2023
68f3128
bug with reflection fixed (#19127)
kalane15 Aug 15, 2023
5b77f9b
Allow mind system to spawn ghosts during the post-round phase. (#19091)
ElectroJr Aug 15, 2023
7e196c5
Automatic changelog update
PJBot Aug 15, 2023
be3fc74
Remove UI state enter/exit logic from DamageOverlayUi (#19149)
ElectroJr Aug 15, 2023
335e023
Add placement logs (#18709)
Chief-Engineer Aug 15, 2023
5d4338f
Automatic changelog update
PJBot Aug 15, 2023
62b08db
fland update (#19160)
Emisse Aug 15, 2023
16d0c9f
marathon update (#19162)
Emisse Aug 15, 2023
1863614
meta update (#19163)
Emisse Aug 15, 2023
b8d8045
omega update (#19164)
Emisse Aug 15, 2023
a1e0b5b
packed update (#19166)
Emisse Aug 15, 2023
7fda79b
real cap gun on core (#19172)
deltanedas Aug 15, 2023
6cdde10
Update CODEOWNERS (#19173)
ficcialfaint Aug 15, 2023
0f31095
remove id computer board objective (#19171)
deltanedas Aug 15, 2023
5742c4e
Automatic changelog update
PJBot Aug 15, 2023
7db8c78
Speech verbs & conditional markup modification (#18980)
mirrorcult Aug 15, 2023
45bc2e8
Automatic changelog update
PJBot Aug 15, 2023
4c2f337
Update scrubs crate to have scrubs hats instead of bandanas (#19181)
Titian3 Aug 15, 2023
452f211
Automatic changelog update
PJBot Aug 15, 2023
2e86f4c
Portal sprite & behavior tweaks (#19179)
mirrorcult Aug 15, 2023
f3b4019
remove "failed to send message" popup from radio (#19184)
EmoGarbage404 Aug 15, 2023
d40417a
Automatic changelog update
PJBot Aug 15, 2023
5e1576a
Automatic changelog update
PJBot Aug 15, 2023
74f2ee1
add test for salvage map loading (#19017)
EmoGarbage404 Aug 15, 2023
75d2c12
Add food carts (#19177)
IamVelcroboy Aug 15, 2023
3b31e2c
borgs are immune to electrocution (#19186)
EmoGarbage404 Aug 15, 2023
623e7b8
Automatic changelog update
PJBot Aug 15, 2023
65c7e88
Make jugs label deletable (#19082)
Fahasor Aug 15, 2023
87b7742
Automatic changelog update
PJBot Aug 15, 2023
b8250f9
entity storage tweaks (#19182)
EmoGarbage404 Aug 15, 2023
e0ce994
Automatic changelog update
PJBot Aug 15, 2023
ab3106f
Adds Directional Switches (#19175)
IamVelcroboy Aug 15, 2023
57b5add
Automatic changelog update
PJBot Aug 15, 2023
6d86351
fix BIG storage crates (#19188)
EmoGarbage404 Aug 15, 2023
8dedabb
Dan's Soaked Smokes (#19150)
Tollhouse Aug 16, 2023
17cfcbb
Automatic changelog update
PJBot Aug 16, 2023
1386daa
Barratry (#19190)
Emisse Aug 16, 2023
7c04f81
marathon update (#19191)
Emisse Aug 16, 2023
627dd6a
cluster update (#19192)
Emisse Aug 16, 2023
3e464cd
Add CVar for customizing round restart time (#19136)
arimah Aug 16, 2023
5cacc2a
make the smaller sinks look good again (#19198)
Emisse Aug 16, 2023
c5d2454
webedit pro pro ops pro (#19201)
Emisse Aug 16, 2023
f0e38bf
bagel update (#19200)
Emisse Aug 16, 2023
bb096b1
Syndicate pAI upgrade (#19195)
crazybrain23 Aug 16, 2023
21c1d4c
Automatic changelog update
PJBot Aug 16, 2023
2731999
Rebalance cannabis (#19183)
IamVelcroboy Aug 16, 2023
83cc6d3
Automatic changelog update
PJBot Aug 16, 2023
3690ae4
Limit saving admin logs to one task (#19146)
DrSmugleaf Aug 16, 2023
a35f276
Adjust debug command perm (#19202)
metalgearsloth Aug 16, 2023
96f8162
Make AGhosts able to interact with bound UIs from any range (#19151)
DrSmugleaf Aug 16, 2023
94b277f
Automatic changelog update
PJBot Aug 16, 2023
1f42412
Revenants no longer cause the object to emag itself (#19199)
LankLTE Aug 16, 2023
d1593da
Update submodule to 148.1.0 (#19204)
metalgearsloth Aug 16, 2023
4b15a1d
Hotfix entitystorage (#19206)
EmoGarbage404 Aug 16, 2023
180c74c
Automatic changelog update
PJBot Aug 16, 2023
149d2a5
add binary radio to the various bots (#19203)
Ilya246 Aug 16, 2023
324f4b2
Automatic changelog update
PJBot Aug 16, 2023
8a0ca26
binary channel for sentient vendomats (#19212)
Ilya246 Aug 16, 2023
ebdf249
Add fingerless insulated gloves (#19111)
JoeHammad1844 Aug 16, 2023
6b5c697
Rework salvage crate loot (#19215)
DogZeroX Aug 16, 2023
8e388a2
Automatic changelog update
PJBot Aug 16, 2023
75c8ded
Nert part creation (#19216)
DogZeroX Aug 16, 2023
24404fa
Automatic changelog update
PJBot Aug 16, 2023
b386856
Merge pull request #19223
misandrie Aug 16, 2023
947832c
Merge pull request #19226
DogZeroX Aug 16, 2023
0aa5375
Merge remote-tracking branch 'upstream/master' into August_16_upstrea…
Cheackraze Aug 17, 2023
8bbcd03
Revert "New /vg/ nuke sprite (#18890)"
Cheackraze Aug 17, 2023
73ec1be
box update (#19232)
Emisse Aug 17, 2023
7f05753
fland update (#19233)
Emisse Aug 17, 2023
870a91b
meta update (#19234)
Emisse Aug 17, 2023
e3df744
packed update (#19235)
Emisse Aug 17, 2023
da5f403
omega update (#19236)
Emisse Aug 17, 2023
4da369b
8 -> 5 (#19231)
liltenhead Aug 17, 2023
7b405a4
Automatic changelog update
PJBot Aug 17, 2023
23dece2
laser costs (#19228)
liltenhead Aug 17, 2023
74c7e6f
Automatic changelog update
PJBot Aug 17, 2023
82cbdaf
new machine frame sprites (#19211)
UbaserB Aug 17, 2023
1fdce43
Automatic changelog update
PJBot Aug 17, 2023
505ff0b
mothin time
Cheackraze Aug 17, 2023
4455a05
more moth cleanup
Cheackraze Aug 17, 2023
beef915
fixups
Cheackraze Aug 17, 2023
0581620
Fixed Dan's Soaked Cigs Typo (#19239)
hord-brayden Aug 17, 2023
0aed7a2
Automatic changelog update
PJBot Aug 17, 2023
da5114f
Merge branch 'master' into August_16_upstream_merge
Cheackraze Aug 17, 2023
2cc66ea
generators
Cheackraze Aug 17, 2023
df82a6b
apu and other recipe cleanups
Cheackraze Aug 17, 2023
b9d0487
conflict resolution
Cheackraze Aug 17, 2023
f4bbad8
borgening
Cheackraze Aug 17, 2023
b05e0ef
Origin update (#19214)
misandrie Aug 17, 2023
6c6ead9
Automatic changelog update
PJBot Aug 17, 2023
89b3231
update rules for borgs (#19248)
Chief-Engineer Aug 17, 2023
a39fa80
Add lathe material ejection (#19218)
chromiumboy Aug 17, 2023
2dea8a9
Automatic changelog update
PJBot Aug 17, 2023
1e65eea
Fix some TEG code conventions (#19259)
mirrorcult Aug 17, 2023
89f60a4
Fix failing tests (probably) (#19261)
ficcialfaint Aug 17, 2023
0a945a6
Merge pull request #19254
metalgearsloth Aug 17, 2023
9df1f39
Automatic changelog update
PJBot Aug 17, 2023
dec6fe0
[Tweak] Exclaim instead of shout (#19262)
OctoRocket Aug 17, 2023
2dd042f
Fix for Mopped chems not transfering (#19238)
Titian3 Aug 17, 2023
9b50a95
Automatic changelog update
PJBot Aug 17, 2023
28e6d7c
yml entry cleanup
Cheackraze Aug 18, 2023
b023374
redo links and fill up generators
Cheackraze Aug 18, 2023
11c9a08
reflection tweaks
Cheackraze Aug 18, 2023
8752fcd
Nerf a bunch of point requirement (#19217)
DogZeroX Aug 18, 2023
83fa7a7
Automatic changelog update
PJBot Aug 18, 2023
0f6fe96
late join jobcons
Cheackraze Aug 18, 2023
2143f9e
Merge remote-tracking branch 'upstream/master' into August_16_upstrea…
Cheackraze Aug 18, 2023
6ee27b4
plasma balance
Cheackraze Aug 18, 2023
4960360
linter fix
Cheackraze Aug 18, 2023
db3b2d6
linter fix again
Cheackraze Aug 18, 2023
891c285
linter fix again
Cheackraze Aug 18, 2023
0c1a88e
Merge remote-tracking branch 'origin/August_16_upstream_merge' into A…
Cheackraze Aug 18, 2023
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.
17 changes: 15 additions & 2 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
/Content.*/Administration/ @moonheart08 @PaulRitter @DrSmugleaf @Chief-Engineer
/Content.*/Station/ @moonheart08
/Content.*/Maps/ @moonheart08
/Content.*/GameTicking/ @moonheart08
/Content.*/GameTicking/ @moonheart08 @EmoGarbage404
/Resources/ServerInfo/ @moonheart08 @Chief-Engineer
/Resources/ServerInfo/Guidebook/ @moonheart08
/Resources/ServerInfo/Guidebook/ @moonheart08 @EmoGarbage404
/Resources/engineCommandPerms.yml @moonheart08 @Chief-Engineer
/Resources/clientCommandPerms.yml @moonheart08 @Chief-Engineer
/Resources/Prototypes/species.yml @moonheart08
Expand Down Expand Up @@ -39,6 +39,19 @@
/Content.*/Actions/ @ElectroJr
/Content.*/Explosion/ @ElectroJr

/Content.*/Anomaly/ @EmoGarbage404
/Content.*/Lathe/ @EmoGarbage404
/Content.*/Materials/ @EmoGarbage404
/Content.*/Mech/ @EmoGarbage404
/Content.*/Research/ @EmoGarbage404
/Content.*/Stack/ @EmoGarbage404
/Content.*/Xenoarchaeology/ @EmoGarbage404
/Content.*/Zombies/ @EmoGarbage404
/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @EmoGarbage404
/Resources/Prototypes/Research/ @EmoGarbage404

/Content.*/Forensics/ @ficcialfaint

/Content.YAMLLinter @PaulRitter @DrSmugleaf
/Content.*/Inventory @PaulRitter
/Content.*/Arcade @PaulRitter
Expand Down
18 changes: 13 additions & 5 deletions Content.Benchmarks/DeviceNetworkingBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@ public class DeviceNetworkingBenchmark


private NetworkPayload _payload = default!;

[TestPrototypes]
private const string Prototypes = @"
- type: entity
name: DummyNetworkDevice
id: DummyNetworkDevice
name: DummyNetworkDevicePrivate
id: DummyNetworkDevicePrivate
components:
- type: DeviceNetwork
transmitFrequency: 100
Expand All @@ -56,7 +58,7 @@ public class DeviceNetworkingBenchmark
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
_pair = await PoolManager.GetServerClient(new PoolSettings { NoClient = true, ExtraPrototypes = Prototypes });
_pair = await PoolManager.GetServerClient();
var server = _pair.Pair.Server;

await server.WaitPost(() =>
Expand All @@ -73,17 +75,23 @@ await server.WaitPost(() =>
["testbool"] = true
};

_sourceEntity = entityManager.SpawnEntity("DummyNetworkDevice", MapCoordinates.Nullspace);
_sourceEntity = entityManager.SpawnEntity("DummyNetworkDevicePrivate", MapCoordinates.Nullspace);
_sourceWirelessEntity = entityManager.SpawnEntity("DummyWirelessNetworkDevice", MapCoordinates.Nullspace);

for (var i = 0; i < EntityCount; i++)
{
_targetEntities.Add(entityManager.SpawnEntity("DummyNetworkDevice", MapCoordinates.Nullspace));
_targetEntities.Add(entityManager.SpawnEntity("DummyNetworkDevicePrivate", MapCoordinates.Nullspace));
_targetWirelessEntities.Add(entityManager.SpawnEntity("DummyWirelessNetworkDevice", MapCoordinates.Nullspace));
}
});
}

[GlobalCleanup]
public async Task Cleanup()
{
await _pair.DisposeAsync();
}

[Benchmark(Baseline = true, Description = "Entity Events")]
public async Task EventSentBaseline()
{
Expand Down
4 changes: 4 additions & 0 deletions Content.Benchmarks/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ public static void Main(string[] args)

public static async Task MainAsync(string[] args)
{
PoolManager.Startup(typeof(Program).Assembly);
var pair = await PoolManager.GetServerClient();
var gameMaps = pair.Pair.Server.ResolveDependency<IPrototypeManager>().EnumeratePrototypes<GameMapPrototype>().ToList();
MapLoadBenchmark.MapsSource = gameMaps.Select(x => x.ID);
await pair.CleanReturnAsync();

#if DEBUG
Console.ForegroundColor = ConsoleColor.Red;
Expand All @@ -33,6 +35,8 @@ public static async Task MainAsync(string[] args)
var config = Environment.GetEnvironmentVariable("ROBUST_BENCHMARKS_ENABLE_SQL") != null ? DefaultSQLConfig.Instance : null;
BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, config);
#endif

PoolManager.Shutdown();
}
}
}
11 changes: 11 additions & 0 deletions Content.Client/Access/AccessOverriderSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using Content.Shared.Access.Systems;
using JetBrains.Annotations;

namespace Content.Client.Access
{
[UsedImplicitly]
public sealed class AccessOverriderSystem : SharedAccessOverriderSystem
{

}
}
72 changes: 72 additions & 0 deletions Content.Client/Access/UI/AccessOverriderBoundUserInterface.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.Containers.ItemSlots;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.AccessOverriderComponent;

namespace Content.Client.Access.UI
{
public sealed class AccessOverriderBoundUserInterface : BoundUserInterface
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
private readonly SharedAccessOverriderSystem _accessOverriderSystem = default!;

private AccessOverriderWindow? _window;

public AccessOverriderBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
_accessOverriderSystem = EntMan.System<SharedAccessOverriderSystem>();
}

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

List<string> accessLevels;

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

else
{
accessLevels = new List<string>();
_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();
}

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

public void SubmitData(List<string> newAccessList)
{
SendMessage(new WriteToTargetAccessReaderIdMessage(newAccessList));
}
}
}
23 changes: 23 additions & 0 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<DefaultWindow xmlns="https://spacestation14.io"
MinSize="650 290">
<BoxContainer Orientation="Vertical">
<GridContainer Columns="2">
<GridContainer Columns="3" HorizontalExpand="True">
<Label Text="{Loc 'access-overrider-window-privileged-id'}" />
<Button Name="PrivilegedIdButton" Access="Public"/>
<Label Name="PrivilegedIdLabel" />
</GridContainer>
</GridContainer>
<Label Name="TargetNameLabel" />
<Control MinSize="0 8"/>
<GridContainer Name="AccessLevelGrid" Columns="5" HorizontalAlignment="Center">

<!-- Access level buttons are added here by the C# code -->

</GridContainer>
<Control MinSize="0 8"/>
<Label Name="MissingPrivilegesLabel" />
<Control MinSize="0 4"/>
<Label Name="MissingPrivilegesText" />
</BoxContainer>
</DefaultWindow>
111 changes: 111 additions & 0 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
using System.Linq;
using Content.Shared.Access;
using Content.Shared.Access.Systems;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.AccessOverriderComponent;

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 ISawmill _logMill = default!;
private readonly AccessOverriderBoundUserInterface _owner;
private readonly Dictionary<string, Button> _accessButtons = new();

public AccessOverriderWindow(AccessOverriderBoundUserInterface owner, IPrototypeManager prototypeManager,
List<string> accessLevels)
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_logMill = _logManager.GetSawmill(SharedAccessOverriderSystem.Sawmill);

_owner = owner;

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

var newButton = new Button
{
Text = GetAccessLevelName(accessLevel),
ToggleMode = true,
};

AccessLevelGrid.AddChild(newButton);
_accessButtons.Add(accessLevel.ID, newButton);
newButton.OnPressed += _ => SubmitData();
}
}

private static string GetAccessLevelName(AccessLevelPrototype prototype)
{
if (prototype.Name is { } name)
return Loc.GetString(name);

return prototype.ID;
}

public void UpdateState(AccessOverriderBoundUserInterfaceState state)
{
PrivilegedIdLabel.Text = state.PrivilegedIdName;
PrivilegedIdButton.Text = state.IsPrivilegedIdPresent
? Loc.GetString("access-overrider-window-eject-button")
: Loc.GetString("access-overrider-window-insert-button");

TargetNameLabel.Text = state.TargetLabel;
TargetNameLabel.FontColorOverride = state.TargetLabelColor;

MissingPrivilegesLabel.Text = "";
MissingPrivilegesLabel.FontColorOverride = Color.Yellow;

MissingPrivilegesText.Text = "";
MissingPrivilegesText.FontColorOverride = Color.Yellow;

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

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

MissingPrivilegesLabel.Text = Loc.GetString("access-overrider-window-missing-privileges");
MissingPrivilegesText.Text = string.Join(", ", missingPrivileges);
}

var interfaceEnabled = state.IsPrivilegedIdPresent && state.IsPrivilegedIdAuthorized;

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;
}
}
}

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 => x.Key).ToList());
}
}
}
9 changes: 8 additions & 1 deletion Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ protected override void Open()
{
base.Open();

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

Expand All @@ -39,6 +40,11 @@ private void OnJobChanged(string newJob)
SendMessage(new AgentIDCardJobChangedMessage(newJob));
}

public void OnJobIconChanged(string newJobIcon)
{
SendMessage(new AgentIDCardJobIconChangedMessage(newJobIcon));
}

/// <summary>
/// Update the UI state based on server-sent info
/// </summary>
Expand All @@ -51,6 +57,7 @@ protected override void UpdateState(BoundUserInterfaceState state)

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

protected override void Dispose(bool disposing)
Expand Down
7 changes: 7 additions & 0 deletions Content.Client/Access/UI/AgentIDCardWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,12 @@
<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>
</BoxContainer>
</DefaultWindow>
Loading
Loading